diff --git a/changelog b/changelog index dc6b0c05c..12858495b 100644 --- a/changelog +++ b/changelog @@ -13,6 +13,8 @@ * Additionally, channels can be drilled by right clicking a pile addon device with the hand drill, the addon doesn't need to be removed beforehand * This is mainly for convenience when disassembling and reassembling the reactor, which requires all channels to be drilled again * Piles that overheat will explode, throwing flaming graphite everywhere +* Satelllite Ground Station + * Can relay RoR commands to connected satellites and satellite info back to RoR ## Changed * Updated all oil well GUI textures @@ -31,6 +33,15 @@ * Reduced the cost for the heavy stirling engine * Removed the satellite interface item for being basically completely useless * Updated the satellite ID manager texture and recipe +* Satellite ID chips are now soldered +* Overhauled all satellites + * Satellites now use one item ID with meta, most satellites now have new textures + * Satellites can now be connected to ground stations and controlled with RoR commands + * Satellites now have manual pages detailing the commands + * The recipes have been updated, they now use mostly common parts and no longer feature the satellite base and heads items which are welded together + * Legacy satellites still function and can still be launched +* The PWR's coolant levels can now be read with RoR +* Soyuz and related assembly recipes now use 25kHE/t instead of just 100 ## Fixed * Fixed held block being placed when not sneaking when opening the cable diode's GUI @@ -40,4 +51,5 @@ * Fixed a longstanding issue where the transparent part of beams from tile entity models would often have incorrect render order, sometimes rendering things behind them invisible * This also fixes the same phenomenon for other types of beams, such as those from hitscan laser and tesla weapons * Fixed some issues regarding the new crane structure -* Fixed skeletonizer ashes floating over the floor after landing \ No newline at end of file +* Fixed skeletonizer ashes floating over the floor after landing +* Fixed backface rendering of the capacitor frames when inserted in the battery socket diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java index b8d034cab..13536e3d0 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java @@ -32,6 +32,7 @@ import com.hbm.items.machine.ItemDrillbit.EnumDrillType; import com.hbm.items.machine.ItemPACoil.EnumCoilType; import com.hbm.items.machine.ItemPileRodMK2.EnumPileRod; import com.hbm.items.machine.ItemPistons.EnumPistonType; +import com.hbm.items.special.ItemSatellite.EnumSatType; import com.hbm.items.weapon.ItemAmmoHIMARS; import com.hbm.items.weapon.grenade.ItemGrenadeFuze.EnumGrenadeFuze; import com.hbm.items.weapon.grenade.ItemGrenadeShell.EnumGrenadeShell; @@ -942,13 +943,13 @@ public class AssemblyMachineRecipes extends GenericRecipes { .inputFluids(new FluidStack(Fluids.MUSTARDGAS, 4_000))); // space - this.register(new GenericRecipe("ass.soyuzcore").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.struct_soyuz_core, 1)) + this.register(new GenericRecipe("ass.soyuzcore").setup(1_200, 25_000).outputItems(new ItemStack(ModBlocks.struct_soyuz_core, 1)) .inputItems(new OreDictStack(STEEL.plateWelded(), 16), new ComparableStack(ModItems.upgrade_speed_3), new ComparableStack(ModItems.upgrade_power_3), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CONTROLLER), new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM)).setPools(GenericRecipes.POOL_PREFIX_DISCOVER + "soyuz")); - this.register(new GenericRecipe("ass.soyuz").setup(6_000, 100).outputItems(new ItemStack(ModItems.missile_soyuz, 1)) + this.register(new GenericRecipe("ass.soyuz").setup(6_000, 25_000).outputItems(new ItemStack(ModItems.missile_soyuz, 1)) .inputItems(new OreDictStack(TI.shell(), 32), new OreDictStack(RUBBER.ingot(), 64), new ComparableStack(ModItems.rocket_fuel, 64), @@ -956,7 +957,7 @@ public class AssemblyMachineRecipes extends GenericRecipes { new ComparableStack(ModItems.thruster_medium, 12), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CONTROLLER), new ComparableStack(ModItems.part_generic, 32, EnumPartType.LDE)).setPools(GenericRecipes.POOL_PREFIX_DISCOVER + "soyuz")); - this.register(new GenericRecipe("ass.lander").setup(2_400, 100).outputItems(new ItemStack(ModItems.missile_soyuz_lander, 1)) + this.register(new GenericRecipe("ass.lander").setup(2_400, 25_000).outputItems(new ItemStack(ModItems.missile_soyuz_lander, 1)) .inputItems(new OreDictStack(AL.shell(), 4), new OreDictStack(RUBBER.ingot(), 16), new ComparableStack(ModItems.rocket_fuel, 16), @@ -964,6 +965,69 @@ public class AssemblyMachineRecipes extends GenericRecipes { new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER_ADVANCED), new ComparableStack(ModItems.part_generic, 12, EnumPartType.LDE)).setPools(GenericRecipes.POOL_PREFIX_DISCOVER + "soyuz")); + this.register(new GenericRecipe("ass.spysat").setup(1_200, 25_000).outputItems(new ItemStack(ModItems.satellite, 1, EnumSatType.SPY.ordinal())) + .inputItems(new OreDictStack(AL.shell(), 16), + new ComparableStack(ModItems.photo_panel, 32), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC), + new ComparableStack(ModItems.part_generic, 8, EnumPartType.GLASS_POLARIZED), + new ComparableStack(ModItems.part_generic, 16, EnumPartType.LDE), + new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER))); + this.register(new GenericRecipe("ass.scansat").setup(1_200, 25_000).outputItems(new ItemStack(ModItems.satellite, 1, EnumSatType.SCANNER.ordinal())) + .inputItems(new OreDictStack(AL.shell(), 16), + new ComparableStack(ModItems.photo_panel, 32), + new OreDictStack(GOLD.wireDense(), 32), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID), + new ComparableStack(ModItems.part_generic, 16, EnumPartType.LDE), + new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER))); + this.register(new GenericRecipe("ass.radarsat").setup(1_200, 25_000).outputItems(new ItemStack(ModItems.satellite, 1, EnumSatType.RADAR.ordinal())) + .inputItems(new OreDictStack(GOLD.plateCast(), 16), + new ComparableStack(ModItems.photo_panel, 32), + new ComparableStack(ModItems.magnetron, 32), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID), + new ComparableStack(ModItems.part_generic, 4, EnumPartType.LDE), + new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER))); + this.register(new GenericRecipe("ass.astrominer").setup(1_200, 25_000).outputItems(new ItemStack(ModItems.satellite, 1, EnumSatType.MINER_ASTRO.ordinal())) + .inputItems(new OreDictStack(BIGMT.plateCast(), 16), + new ComparableStack(ModItems.photo_panel, 8), + new ComparableStack(ModItems.thruster_medium, 1), + new ComparableStack(ModItems.motor_bismuth, 4), + new ComparableStack(ModItems.part_generic, 16, EnumPartType.LDE), + new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CONTROLLER_ADVANCED))); + this.register(new GenericRecipe("ass.lunarminer").setup(1_200, 25_000).outputItems(new ItemStack(ModItems.satellite, 1, EnumSatType.MINER_LUNAR.ordinal())) + .inputItems(new OreDictStack(BIGMT.plateCast(), 16), + new ComparableStack(ModItems.photo_panel, 8), + new ComparableStack(ModItems.thruster_medium, 1), + new ComparableStack(ModItems.motor_bismuth, 4), + new ComparableStack(ModItems.part_generic, 16, EnumPartType.LDE), + new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CONTROLLER_ADVANCED))); + this.register(new GenericRecipe("ass.orbitallaser").setup(1_200, 25_000).outputItems(new ItemStack(ModItems.satellite, 1, EnumSatType.PRECISION_LASER.ordinal())) + .inputItems(new OreDictStack(WEAPONSTEEL.shell(), 16), + new ComparableStack(ModItems.photo_panel, 32), + new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_TANTALUM), + new ComparableStack(ModItems.crystal_redstone, 16), + new ComparableStack(ModItems.part_generic, 16, EnumPartType.LDE), + new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER_ADVANCED))); + this.register(new GenericRecipe("ass.deathray").setup(1_200, 25_000).outputItems(new ItemStack(ModItems.satellite, 1, EnumSatType.DEATH_RAY.ordinal())) + .inputItems(new OreDictStack(WEAPONSTEEL.shell(), 32), + new OreDictStack(PURG.billet(), 32), + new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_BISMUTH), + new OreDictStack(EMERALD.gem(), 32), + new ComparableStack(ModItems.part_generic, 16, EnumPartType.LDE), + new ComparableStack(ModItems.circuit, 5, EnumCircuitType.CONTROLLER_ADVANCED))); + this.register(new GenericRecipe("ass.xenrelay").setup(1_200, 25_000).outputItems(new ItemStack(ModItems.satellite, 1, EnumSatType.XENIUM_RESONATOR.ordinal())) + .inputItems(new OreDictStack(GOLD.plateCast(), 16), + new ComparableStack(ModItems.photo_panel, 32), + new ComparableStack(ModItems.crystal_xen, 1), + new ComparableStack(ModItems.circuit, 24, EnumCircuitType.BISMOID), + new ComparableStack(ModItems.part_generic, 4, EnumPartType.LDE), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER_ADVANCED))); + + this.register(new GenericRecipe("ass.satlink").setup(100, 1_000).outputItems(new ItemStack(ModBlocks.machine_satlink)) + .inputItems(new ComparableStack(ModBlocks.steel_scaffold, 16), + new OreDictStack(AL.plate(), 16), + new ComparableStack(ModItems.magnetron, 3), + new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER))); + this.register(new GenericRecipe("ass.nitra").setupNamed(200, 500) .inputItems(new ComparableStack(ModItems.nitra)) .setIconToFirstIngredient() diff --git a/src/main/java/com/hbm/items/IItemControlReceiver.java b/src/main/java/com/hbm/items/IItemControlReceiver.java index f51bcec4a..c8a7c0c18 100644 --- a/src/main/java/com/hbm/items/IItemControlReceiver.java +++ b/src/main/java/com/hbm/items/IItemControlReceiver.java @@ -1,9 +1,10 @@ package com.hbm.items; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; public interface IItemControlReceiver { - public void receiveControl(ItemStack stack, NBTTagCompound data); + public void receiveControl(EntityPlayer player, ItemStack stack, NBTTagCompound data); } diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java b/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java index 5dda87f7e..f1b8c517f 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java @@ -64,7 +64,7 @@ public class ItemFluidIDMulti extends Item implements IItemFluidIdentifier, IIte } @Override - public void receiveControl(ItemStack stack, NBTTagCompound data) { + public void receiveControl(EntityPlayer player, ItemStack stack, NBTTagCompound data) { if(data.hasKey("primary")) { setType(stack, Fluids.fromID(data.getInteger("primary")), true); } diff --git a/src/main/java/com/hbm/items/tool/ItemRTTYPager.java b/src/main/java/com/hbm/items/tool/ItemRTTYPager.java index ac3d2b018..dfea6222c 100644 --- a/src/main/java/com/hbm/items/tool/ItemRTTYPager.java +++ b/src/main/java/com/hbm/items/tool/ItemRTTYPager.java @@ -72,7 +72,7 @@ public class ItemRTTYPager extends Item implements IItemControlReceiver, IGUIPro } @Override - public void receiveControl(ItemStack stack, NBTTagCompound data) { + public void receiveControl(EntityPlayer player, ItemStack stack, NBTTagCompound data) { if(data.hasKey("chan")) { if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); stack.stackTagCompound.setString(KEY_CHANNEL, data.getString(KEY_CHANNEL)); diff --git a/src/main/java/com/hbm/items/tool/ItemSatInterface.java b/src/main/java/com/hbm/items/tool/ItemSatInterface.java index e0cff0d60..4e0de1089 100644 --- a/src/main/java/com/hbm/items/tool/ItemSatInterface.java +++ b/src/main/java/com/hbm/items/tool/ItemSatInterface.java @@ -53,7 +53,8 @@ public class ItemSatInterface extends ItemSatChip implements IGUIProvider, IItem } @Override - public void receiveControl(ItemStack stack, NBTTagCompound data) { - + public void receiveControl(EntityPlayer player, ItemStack stack, NBTTagCompound data) { + SatelliteBase sat = SatelliteSavedData.getData(player.worldObj).getSatFromFreq(this.getFreq(stack)); + if(sat != null) sat.onCoordAction(player.worldObj, player, data.getInteger("x"), data.hasKey("y") ? data.getInteger("y") : -1, data.getInteger("z")); } } diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index 6483867c2..6be56142f 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -534,7 +534,7 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro } @Override - public void receiveControl(ItemStack stack, NBTTagCompound data) { + public void receiveControl(EntityPlayer player, ItemStack stack, NBTTagCompound data) { Configuration config = new Configuration(); config.readFromNBT(data); config.restrictTo(availableAbilities); diff --git a/src/main/java/com/hbm/packet/toserver/NBTItemControlPacket.java b/src/main/java/com/hbm/packet/toserver/NBTItemControlPacket.java index 7ea765550..37cf8331e 100644 --- a/src/main/java/com/hbm/packet/toserver/NBTItemControlPacket.java +++ b/src/main/java/com/hbm/packet/toserver/NBTItemControlPacket.java @@ -65,7 +65,7 @@ public class NBTItemControlPacket implements IMessage { ItemStack held = p.getHeldItem(); if(held != null && held.getItem() instanceof IItemControlReceiver) { - ((IItemControlReceiver) held.getItem()).receiveControl(held, nbt); + ((IItemControlReceiver) held.getItem()).receiveControl(p, held, nbt); } } diff --git a/src/main/java/com/hbm/render/entity/effect/RenderOrbitalLaser.java b/src/main/java/com/hbm/render/entity/effect/RenderOrbitalLaser.java index 99e3a4f8f..bd529c1a6 100644 --- a/src/main/java/com/hbm/render/entity/effect/RenderOrbitalLaser.java +++ b/src/main/java/com/hbm/render/entity/effect/RenderOrbitalLaser.java @@ -43,6 +43,8 @@ public class RenderOrbitalLaser extends Render { tessellator.draw(); } + GL11.glColor3f(1F, 1F, 1F); + for(int i = 0; i < 8; i++) { tessellator.startDrawing(6); tessellator.addVertex(vector.xCoord / 2, 250.0D, vector.zCoord / 2); diff --git a/src/main/java/com/hbm/render/tileentity/RenderSatLink.java b/src/main/java/com/hbm/render/tileentity/RenderSatLink.java index 5698a1736..df7493046 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSatLink.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSatLink.java @@ -21,7 +21,7 @@ public class RenderSatLink extends TileEntitySpecialRenderer implements IItemRen GL11.glPushMatrix(); GL11.glTranslated(x + 0.5D, y, z + 0.5D); GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_CULL_FACE); GL11.glRotatef(180, 0F, 1F, 0F); TileEntityMachineSatLink link = (TileEntityMachineSatLink) tile; diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteRadar.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteRadar.java index 65199ae1b..454d2980d 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteRadar.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteRadar.java @@ -103,7 +103,7 @@ public class SatelliteRadar extends SatelliteBase { public Entity getTargetFromIndex(String cmd) { if(filteredRadarResults.size() <= 0) return null; - int index = IRORInteractive.parseInt(cmd, 0, filteredRadarResults.size()); + int index = IRORInteractive.parseInt(cmd, 0, filteredRadarResults.size()) - 1; Entity target = filteredRadarResults.get(index); if(target.isDead) return null; return target; diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteResonator.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteResonator.java index d4cab13b2..d5ee8dfe4 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteResonator.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteResonator.java @@ -16,7 +16,9 @@ public class SatelliteResonator extends SatelliteBase { world.playSoundEffect(player.posX, player.posY, player.posZ, "mob.endermen.portal", 1.0F, 1.0F); player.mountEntity(null); - ((EntityPlayerMP)player).playerNetServerHandler.setPlayerLocation(x + 0.5D, y, z + 0.5D, player.rotationYaw, player.rotationPitch); + world.getChunkFromChunkCoords(x >> 4, z >> 4); + if(y < 0) y = world.getHeightValue(x, z); + ((EntityPlayerMP) player).playerNetServerHandler.setPlayerLocation(x + 0.5D, y, z + 0.5D, player.rotationYaw, player.rotationPitch); world.playSoundEffect(player.posX, player.posY, player.posZ, "mob.endermen.portal", 1.0F, 1.0F); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLink.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLink.java index 3fd818bca..65f802d77 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLink.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLink.java @@ -9,6 +9,7 @@ import api.hbm.redstoneoverradio.IRORValueProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; public class TileEntityMachineSatLink extends TileEntityTickingBase implements IRORValueProvider, IRORInteractive { @@ -73,6 +74,18 @@ public class TileEntityMachineSatLink extends TileEntityTickingBase implements I this.freq = buf.readInt(); } + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.freq = nbt.getInteger("freq"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("power", freq); + } + AxisAlignedBB bb = null; @Override diff --git a/src/main/resources/assets/hbm/manual/satellite/asteroidminer.json b/src/main/resources/assets/hbm/manual/satellite/asteroidminer.json new file mode 100644 index 000000000..26d9d1384 --- /dev/null +++ b/src/main/resources/assets/hbm/manual/satellite/asteroidminer.json @@ -0,0 +1,11 @@ +{ + "name": "Asteroid Mining Ship", + "icon": ["hbm:item.satellite", 1, 3], + "trigger": [["hbm:item.satellite", 1, 3]], + "title": { + "en_US": "Asteroid Mining Ship" + }, + "content": { + "en_US": "The asteroid mining ship will, if connected to a satellite ID chip which is inserted into a cargo landing pad, land in regular intervals to deliver items mined in space. Do note that one mining ship can only supply a single cargo landing pad. Also keep the landing pad free of obstructions, as the drop ship may explode when impacting other blocks.

See also:
* [[Satellite]]
* [[Satellite Ground Station]]" + } +} diff --git a/src/main/resources/assets/hbm/manual/satellite/lunarminer.json b/src/main/resources/assets/hbm/manual/satellite/lunarminer.json new file mode 100644 index 000000000..972a57927 --- /dev/null +++ b/src/main/resources/assets/hbm/manual/satellite/lunarminer.json @@ -0,0 +1,11 @@ +{ + "name": "Lunar Mining Ship", + "icon": ["hbm:item.satellite", 1, 4], + "trigger": [["hbm:item.satellite", 1, 4]], + "title": { + "en_US": "Lunar Mining Ship" + }, + "content": { + "en_US": "The lunar mining ship will, if connected to a satellite ID chip which is inserted into a cargo landing pad, land in regular intervals to deliver items mined on the moon. Do note that one mining ship can only supply a single cargo landing pad. Also keep the landing pad free of obstructions, as the drop ship may explode when impacting other blocks.

Unlike the [[asteroid mining ship|Asteroid Mining Ship]], the selection of items it can harvest is much smaller, however, the large quantities of moon turf it can produce are important for [[helium-3|Helium-3]], a powerful fuel for the [[fusion reactor|Fusion Reactor]].

See also:
* [[Satellite]]
* [[Satellite Ground Station]]" + } +} diff --git a/src/main/resources/assets/hbm/manual/satellite/orbitaldeathray.json b/src/main/resources/assets/hbm/manual/satellite/orbitaldeathray.json new file mode 100644 index 000000000..11ed06953 --- /dev/null +++ b/src/main/resources/assets/hbm/manual/satellite/orbitaldeathray.json @@ -0,0 +1,11 @@ +{ + "name": "Orbital Death Ray", + "icon": ["hbm:item.satellite", 1, 6], + "trigger": [["hbm:item.satellite", 1, 6]], + "title": { + "en_US": "Orbital Death Ray" + }, + "content": { + "en_US": "The orbital death ray is a powerful nuclear-powered orbital weapon firing a laser that deals as much damage as a high-yield mini nuke, but without the radiation. Despite the powerful energy source, the ray takes five minutes to fully charge. Unlike the [[precision laser|Orbital Precision Laser]], it lacks the entity targeting option that would let it shoot down missiles or hit fast-moving targets.

* '§efire§r' will fire the laser at the current target position, assuming the ray has finished charging.
* '§ecanfire§r' will write either 'TRUE' or 'FALSE' to RX depending on whether the cooldown has elapsed and the death ray is ready to fire.

See also:
* [[Satellite]]
* [[Satellite Ground Station]]" + } +} diff --git a/src/main/resources/assets/hbm/manual/satellite/orbitallaser.json b/src/main/resources/assets/hbm/manual/satellite/orbitallaser.json new file mode 100644 index 000000000..a06149353 --- /dev/null +++ b/src/main/resources/assets/hbm/manual/satellite/orbitallaser.json @@ -0,0 +1,11 @@ +{ + "name": "Orbital Precision Laser", + "icon": ["hbm:item.satellite", 1, 5], + "trigger": [["hbm:item.satellite", 1, 5]], + "title": { + "en_US": "Orbital Precision Laser" + }, + "content": { + "en_US": "The orbital precision laser is a low-power weapon that harvests sunlight to charge up a small laser beam. The beam only takes five seconds to charge up, and deals marginally more block damage than TNT. The direct hit damage for struck entities is however much higher. When combined with the targeting data of a [[radar satellite|Radar Satellite]], it can potentially also shoot down missiles.

* '§efire§r' will fire the laser at the current target position, assuming the laser has finished charging. If the satellite has been supplied with entity target data, it will use the position of that entitiy instead, assuming it its within 1,000 blocks of the target position. After one shot, the entity targeting data is used up and the satellite's target position will be used again.
* '§ecanfire§r' will write either 'TRUE' or 'FALSE' to RX depending on whether the cooldown has elapsed and the laser is ready to fire.
* '§esetentitytarget §eid§r' supplies an entity ID for precise targeting, which is used up after one shot. The ID can be obtained from a radar satellite.

See also:
* [[Satellite]]
* [[Satellite Ground Station]]" + } +} diff --git a/src/main/resources/assets/hbm/manual/satellite/radarsat.json b/src/main/resources/assets/hbm/manual/satellite/radarsat.json new file mode 100644 index 000000000..4a1664e97 --- /dev/null +++ b/src/main/resources/assets/hbm/manual/satellite/radarsat.json @@ -0,0 +1,11 @@ +{ + "name": "Radar Satellite", + "icon": ["hbm:item.satellite", 1, 2], + "trigger": [["hbm:item.satellite", 1, 2]], + "title": { + "en_US": "Radar Satellite" + }, + "content": { + "en_US": "The radar satellite can detect all radar-detectable entities like players and missiles in a 1,000 block radius around its target position. It can compile, filter, and provide a list of detected objects, along with their type and exact position.

* '§esurvey§r' scans the area and saves the results to a base list and a filtered list. These two lists are now the same, and stored within the satellite.
* '§efilter §ename§r' will overwrite the filtered list with a new list, containing only entries from the original list that match that name filter. Since the original list is retained, the filter operation can be run multiple times for multiple types without needing a survey operation.
* '§ecount§r' writes the amount of entries on the filterd list to RX.
* '§egettargetid §eindex§r' retrieves the unique entity ID from that entry on the list. This ID can be used for precise entity targeting by other satellites.
* '§egetposition §eindex§r' retrieves the exact x/y/z position of the specified entry. The coordinates are separated by semicolons.
* '§egetname §eindex§r' retrieves the class name of that entry, this name is what's used for filtering.

See also:
* [[Satellite]]
* [[Satellite Ground Station]]" + } +} diff --git a/src/main/resources/assets/hbm/manual/satellite/satellite.json b/src/main/resources/assets/hbm/manual/satellite/satellite.json new file mode 100644 index 000000000..4aa613831 --- /dev/null +++ b/src/main/resources/assets/hbm/manual/satellite/satellite.json @@ -0,0 +1,11 @@ +{ + "name": "Satellite", + "icon": ["hbm:item.satellite"], + "trigger": [], + "title": { + "en_US": "Satellite" + }, + "content": { + "en_US": "Satellites can be launched into earth orbit using a [[Soyuz]] rocket. Satellites communicate with items and blocks on earth using frequencies, so in order to actually use one, it's necessary to set a random frequency in the satellite ID manager, and then copying that ID to another item, for example a satellite chip.

Some satellites can perform minor tasks when linked with certain items, like the [[depth scanning satellite|Depth Scanning Satellite]] enabling the neutrino lens, or the [[xenium resonator satellite|Xenium Resonator Satellite]] connected to a satellite laser designator allowing for short range line of sight teleportation. Satellites however are the most powerful when paired with [[Redstone over Radio]] by linking them to a [[ground station|Satellite Ground Station]].

By using a [[RoR reader|Redstone-over-Radio Reader]], ground stations can receive the RX value, which is received from the connected satellite. Each satellite can only provide one RX value at a time, and the value persists until it changes. The contents of RX depend on what function the satellite has performed prior.

By using a ground station's TX command, commands can be relayed to the connected satellite. Most commands vary between satellite types, however all satellites have a ground target, i.e. the spot on the surface they are aiming at.

The common target commands are as follows:
* '§esettarget §ex §ez§r' (Example RoR: '§6tx!settarget §6200 §6300§r')
* '§egettarget§r' (Example RoR: '§6tx!gettarget§r'), writes the current target X and Z separated by semicolon to the ground station's RX
* '§egettargetx§r'
* '§egettargetz§r'

See also:
* [[Spy Satellite]]
* [[Depth Scanning Satellite]]
* [[Radar Satellite]]
* [[Asteroid Mining Ship]]
* [[Lunar Mining Ship]]
* [[Orbital Precision Laser]]
* [[Orbital Death Ray]]
* [[Xenium Resonator Satellite]]
* [[Relay Satellite]]" + } +} diff --git a/src/main/resources/assets/hbm/manual/satellite/satlink.json b/src/main/resources/assets/hbm/manual/satellite/satlink.json new file mode 100644 index 000000000..88dd83963 --- /dev/null +++ b/src/main/resources/assets/hbm/manual/satellite/satlink.json @@ -0,0 +1,11 @@ +{ + "name": "Satellite Ground Station", + "icon": ["hbm:tile.machine_satlink"], + "trigger": [["hbm:tile.machine_satlink"]], + "title": { + "en_US": "Satellite Ground Station" + }, + "content": { + "en_US": "The satellite ground station is an advanced [[Redstone over Radio]] component that allows indirect connection of traditional RoR components and [[satellites|Satellite]]. It doesn't send or receive RoR signals directly, instead, it needs an external [[receiver|Redstone-over-Radio Controller]] or [[transmitter|Redstone-over-Radio Reader]] to interface with RoR.

The ground station can only connect to one satellite at a time. The frequency can be set either by using a configured satellite ID chip on the ground station, or via RoR command.

The two most important RoR functions the ground station has are RX and TX.

RX is a readable value that is relayed from the satellite. The contents of that value depend on the satellite, and is usually set in response to a command. For example, on the [[orbital precision laser|Orbital Precision Laser]], the function 'canfire' will set the RX value to either 'TRUE' or 'FALSE' depending on whether the laser is ready to fire.

TX is a function that allows commands to be relayed from the ground station to the satellite to control it or to request data. For example, the RoR command 'tx!settarget 200 300' will relay the command 'settarget 200 300' to the connected satellite. Do note that satellite commands do not use parameter separators like RoR commands do, since the satellite command is technically just one big RoR parameter.

In conjunction with the [[AUTOCAL]], the ground station becomes incredibly powerful, as it allows for automated targeting of satellites, data processing and more. For example, a [[radar satellite|Radar Satellite]] could survey the airspace for airborne missiles, relay that data to the AUTOCAL which then sends a signal to a precision laser which intercepts the missile." + } +} diff --git a/src/main/resources/assets/hbm/manual/satellite/scansat.json b/src/main/resources/assets/hbm/manual/satellite/scansat.json new file mode 100644 index 000000000..b1b83b58d --- /dev/null +++ b/src/main/resources/assets/hbm/manual/satellite/scansat.json @@ -0,0 +1,11 @@ +{ + "name": "Depth Scanning Satellite", + "icon": ["hbm:item.satellite", 1, 1], + "trigger": [["hbm:item.satellite", 1, 1]], + "title": { + "en_US": "Depth Scanning Satellite" + }, + "content": { + "en_US": "The depth scanning satellite is required for the neutrino lens to work. It does not yet have any special interactions with the ground station.

See also:
* [[Satellite]]
* [[Satellite Ground Station]]" + } +} diff --git a/src/main/resources/assets/hbm/manual/satellite/spysat.json b/src/main/resources/assets/hbm/manual/satellite/spysat.json new file mode 100644 index 000000000..c886755bc --- /dev/null +++ b/src/main/resources/assets/hbm/manual/satellite/spysat.json @@ -0,0 +1,11 @@ +{ + "name": "Spy Satellite", + "icon": ["hbm:item.satellite", 1, 0], + "trigger": [["hbm:item.satellite", 1, 0]], + "title": { + "en_US": "Spy Satellite" + }, + "content": { + "en_US": "The spy satellite allows remote viewing of earth's surface. Due to RoR pixel displays not existing as of now, surface mapping functionality does not yet work. However, they can be used in detecting loaded chunks and spotting players in a small radius.

* '§etargetloaded§r' writes 'TRUE' or 'FALSE' to RX depending on if the chunk that the satellite is pointed at is loaded or not.
* '§espotplayers§r' detects surface players in a 250 block radius and writes all names separated by semicolon to RX.

See also:
* [[Satellite]]
* [[Satellite Ground Station]]" + } +} diff --git a/src/main/resources/assets/hbm/manual/satellite/xenrelay.json b/src/main/resources/assets/hbm/manual/satellite/xenrelay.json new file mode 100644 index 000000000..624506f12 --- /dev/null +++ b/src/main/resources/assets/hbm/manual/satellite/xenrelay.json @@ -0,0 +1,11 @@ +{ + "name": "Xenium Resonator Satellite", + "icon": ["hbm:item.satellite", 1, 7], + "trigger": [["hbm:item.satellite", 1, 7]], + "title": { + "en_US": "Xenium Resonator Satellite" + }, + "content": { + "en_US": "The xenium resonator allows teleportation within the same dimension. It can be controlled either with a satellite designator or the satellite laser designator. When using the satellite designator, the Y value can be omitted, which will default it to surface level.

See also:
* [[Satellite]]
* [[Satellite Ground Station]]" + } +} diff --git a/src/main/resources/assets/hbm/models/machines/battery.obj b/src/main/resources/assets/hbm/models/machines/battery.obj index 850bcf5b7..5a3c21f9a 100644 --- a/src/main/resources/assets/hbm/models/machines/battery.obj +++ b/src/main/resources/assets/hbm/models/machines/battery.obj @@ -152,6 +152,14 @@ v -0.750000 1.750000 -0.750000 v -0.750000 1.750000 0.750000 v 0.750000 1.750000 0.750000 v 0.750000 1.750000 -0.750000 +v -0.875000 0.125000 0.875000 +v 0.875000 0.125000 0.875000 +v -0.875000 0.125000 -0.875000 +v 0.875000 0.125000 -0.875000 +v -0.875000 1.875000 -0.875000 +v -0.875000 1.875000 0.875000 +v 0.875000 1.875000 0.875000 +v 0.875000 1.875000 -0.875000 vt 0.269231 0.000000 vt 0.000000 0.333333 vt 0.000000 0.000000 @@ -180,10 +188,26 @@ vt 1.000000 0.285714 vt 0.769231 0.571429 vt 1.000000 0.285714 vt 0.769231 0.571429 +vt 0.000000 0.333333 +vt 0.269231 0.000000 +vt 0.000000 0.000000 +vt 0.269231 1.000000 +vt 0.000000 0.666667 +vt 0.000000 1.000000 +vt -0.000000 0.666667 +vt 0.269231 0.333333 +vt -0.000000 0.333333 +vt 0.269231 0.666667 +vt 0.538462 0.333333 +vt 0.269231 0.333333 +vt 0.269231 0.666667 +vt 0.538462 0.333333 vt 0.538462 0.666667 vt 0.538462 0.666667 vt 1.000000 0.571429 vt 1.000000 0.571429 +vt 0.538462 0.666667 +vt 0.538462 0.666667 vn 0.0000 -1.0000 0.0000 vn 0.0000 1.0000 0.0000 vn -1.0000 0.0000 0.0000 @@ -203,18 +227,30 @@ f 44/77/11 47/74/11 42/72/11 f 41/78/8 45/79/8 43/80/8 f 43/81/9 48/82/9 44/77/9 f 42/83/10 46/84/10 41/78/10 +f 50/85/7 51/86/7 49/87/7 +f 53/88/6 55/89/6 54/90/6 +f 53/91/11 49/92/11 51/93/11 +f 56/94/10 51/95/10 52/96/10 +f 54/97/9 50/98/9 49/92/9 +f 55/89/8 52/96/8 50/85/8 f 35/57/6 36/68/6 34/58/6 f 39/60/7 40/67/7 37/61/7 f 33/63/8 38/70/8 37/64/8 -f 35/66/9 37/85/9 40/67/9 -f 34/69/10 39/86/10 38/70/10 +f 35/66/9 37/99/9 40/67/9 +f 34/69/10 39/100/10 38/70/10 f 36/68/11 40/67/11 39/60/11 f 43/71/6 44/77/6 42/72/6 f 47/74/7 48/82/7 45/75/7 f 44/77/11 48/82/11 47/74/11 f 41/78/8 46/84/8 45/79/8 -f 43/81/9 45/87/9 48/82/9 -f 42/83/10 47/88/10 46/84/10 +f 43/81/9 45/101/9 48/82/9 +f 42/83/10 47/102/10 46/84/10 +f 50/85/7 52/96/7 51/86/7 +f 53/88/6 56/94/6 55/89/6 +f 53/91/11 54/97/11 49/92/11 +f 56/94/10 53/103/10 51/95/10 +f 54/97/9 55/104/9 50/98/9 +f 55/89/8 56/94/8 52/96/8 o Battery v 0.687500 1.875000 -0.875000 v 0.875000 1.875000 -0.687500 @@ -483,158 +519,158 @@ vn 1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn -1.0000 0.0000 0.0000 s off -f 56/89/12 62/90/12 70/91/12 -f 83/92/13 74/93/13 51/94/13 -f 68/95/14 51/96/14 74/97/14 -f 68/98/15 64/99/15 58/100/15 -f 72/101/15 63/102/15 74/103/15 -f 58/104/16 60/105/16 65/106/16 -f 58/104/13 56/89/13 55/107/13 -f 60/108/14 66/109/14 65/110/14 -f 70/111/17 68/112/17 67/113/17 -f 62/114/18 64/99/18 63/115/18 -f 64/99/19 56/89/19 57/116/19 -f 75/117/18 73/118/18 78/119/18 -f 77/120/20 71/121/20 76/122/20 -f 63/123/13 54/124/13 62/125/13 -f 75/117/15 84/126/15 92/127/15 -f 62/128/12 50/129/12 77/130/12 -f 90/131/21 86/132/21 81/133/21 -f 78/134/17 76/122/17 75/135/17 -f 49/136/18 72/101/18 71/121/18 -f 72/101/19 54/124/19 53/137/19 -f 88/138/14 52/139/14 92/140/14 -f 59/141/13 80/142/13 66/143/13 -f 80/142/16 82/144/16 85/145/16 -f 83/146/12 78/119/12 95/147/12 -f 82/148/14 86/132/14 85/149/14 -f 90/131/17 88/150/17 87/151/17 -f 67/152/18 83/153/18 70/154/18 -f 85/155/15 87/156/15 84/157/15 -f 96/158/21 92/140/21 52/139/21 -f 95/159/20 91/160/20 94/161/20 -f 89/162/12 81/163/12 79/164/12 -f 96/158/17 94/161/17 93/165/17 -f 108/166/20 104/167/20 105/168/20 -f 100/169/12 104/167/12 102/170/12 -f 108/171/15 106/172/15 110/173/15 -f 112/174/21 102/170/21 107/175/21 -f 106/172/19 100/169/19 109/176/19 -f 106/172/18 104/177/18 103/178/18 -f 102/179/17 108/166/17 107/180/17 -f 112/174/14 98/181/14 97/182/14 -f 100/183/13 110/184/13 109/185/13 -f 110/184/16 98/186/16 111/187/16 -f 124/188/20 120/189/20 121/190/20 -f 116/191/12 120/189/12 118/192/12 -f 124/193/15 122/194/15 126/195/15 -f 128/196/21 118/192/21 123/197/21 -f 122/194/19 116/191/19 125/198/19 -f 122/194/18 120/199/18 119/200/18 -f 118/201/17 124/188/17 123/202/17 -f 128/196/14 114/203/14 113/204/14 -f 116/205/13 126/206/13 125/207/13 -f 126/206/16 114/208/16 127/209/16 -f 70/91/12 59/210/12 60/211/12 -f 60/211/12 55/212/12 56/89/12 -f 56/89/12 61/213/12 62/90/12 -f 62/90/12 69/214/12 70/91/12 -f 70/91/12 60/211/12 56/89/12 -f 83/92/13 84/215/13 74/93/13 -f 68/95/14 69/216/14 51/96/14 -f 58/100/15 65/217/15 66/218/15 -f 66/218/15 67/219/15 68/98/15 -f 68/98/15 63/220/15 64/99/15 -f 64/99/15 57/116/15 58/100/15 -f 58/100/15 66/218/15 68/98/15 -f 74/103/15 75/221/15 76/222/15 -f 76/222/15 71/223/15 72/101/15 -f 72/101/15 53/137/15 63/102/15 -f 63/102/15 68/224/15 74/103/15 -f 74/103/15 76/222/15 72/101/15 -f 58/104/16 55/107/16 60/105/16 -f 58/104/13 57/116/13 56/89/13 -f 60/108/14 59/225/14 66/109/14 -f 70/111/17 69/226/17 68/112/17 -f 62/114/18 61/213/18 64/99/18 -f 64/99/19 61/213/19 56/89/19 -f 75/117/18 91/160/18 73/118/18 -f 77/120/20 49/136/20 71/121/20 -f 63/123/13 53/137/13 54/124/13 -f 92/127/15 93/227/15 94/228/15 -f 94/228/15 91/229/15 75/117/15 -f 75/117/15 74/93/15 84/126/15 -f 84/126/15 88/230/15 92/127/15 -f 92/127/15 94/228/15 75/117/15 -f 77/130/12 78/231/12 51/232/12 -f 51/232/12 69/233/12 62/128/12 -f 62/128/12 54/124/12 50/129/12 -f 50/129/12 49/234/12 77/130/12 -f 77/130/12 51/232/12 62/128/12 -f 90/131/21 87/151/21 86/132/21 -f 78/134/17 77/120/17 76/122/17 -f 49/136/18 50/129/18 72/101/18 -f 72/101/19 50/129/19 54/124/19 -f 88/138/14 89/235/14 52/139/14 -f 59/141/13 79/236/13 80/142/13 -f 80/142/16 79/236/16 82/144/16 -f 95/147/12 96/237/12 52/238/12 -f 52/238/12 89/239/12 83/146/12 -f 83/146/12 51/94/12 78/119/12 -f 78/119/12 73/240/12 95/147/12 -f 95/147/12 52/238/12 83/146/12 -f 82/148/14 81/133/14 86/132/14 -f 90/131/17 89/241/17 88/150/17 -f 67/152/18 84/242/18 83/153/18 -f 84/157/15 67/152/15 66/143/15 -f 66/143/15 80/243/15 85/155/15 -f 85/155/15 86/244/15 87/156/15 -f 87/156/15 88/245/15 84/157/15 -f 84/157/15 66/143/15 85/155/15 -f 96/158/21 93/165/21 92/140/21 -f 95/159/20 73/118/20 91/160/20 -f 79/164/12 59/141/12 70/154/12 -f 70/154/12 83/246/12 89/162/12 -f 89/162/12 90/247/12 81/163/12 -f 81/163/12 82/248/12 79/164/12 -f 79/164/12 70/154/12 89/162/12 -f 96/158/17 95/159/17 94/161/17 -f 108/166/20 101/249/20 104/167/20 -f 102/170/12 97/182/12 98/186/12 -f 98/186/12 99/250/12 100/169/12 -f 100/169/12 103/178/12 104/167/12 -f 104/167/12 101/249/12 102/170/12 -f 102/170/12 98/186/12 100/169/12 -f 110/173/15 111/251/15 112/252/15 -f 112/252/15 107/253/15 108/171/15 -f 108/171/15 105/254/15 106/172/15 -f 106/172/15 109/176/15 110/173/15 -f 110/173/15 112/252/15 108/171/15 -f 112/174/21 97/182/21 102/170/21 -f 106/172/19 103/178/19 100/169/19 -f 106/172/18 105/255/18 104/177/18 -f 102/179/17 101/249/17 108/166/17 -f 112/174/14 111/256/14 98/181/14 -f 100/183/13 99/250/13 110/184/13 -f 110/184/16 99/250/16 98/186/16 -f 124/188/20 117/257/20 120/189/20 -f 118/192/12 113/204/12 114/208/12 -f 114/208/12 115/258/12 116/191/12 -f 116/191/12 119/200/12 120/189/12 -f 120/189/12 117/257/12 118/192/12 -f 118/192/12 114/208/12 116/191/12 -f 126/195/15 127/259/15 128/260/15 -f 128/260/15 123/261/15 124/193/15 -f 124/193/15 121/262/15 122/194/15 -f 122/194/15 125/198/15 126/195/15 -f 126/195/15 128/260/15 124/193/15 -f 128/196/21 113/204/21 118/192/21 -f 122/194/19 119/200/19 116/191/19 -f 122/194/18 121/263/18 120/199/18 -f 118/201/17 117/257/17 124/188/17 -f 128/196/14 127/264/14 114/203/14 -f 116/205/13 115/258/13 126/206/13 -f 126/206/16 115/258/16 114/208/16 +f 64/105/12 70/106/12 78/107/12 +f 91/108/13 82/109/13 59/110/13 +f 76/111/14 59/112/14 82/113/14 +f 76/114/15 72/115/15 66/116/15 +f 80/117/15 71/118/15 82/119/15 +f 66/120/16 68/121/16 73/122/16 +f 66/120/13 64/105/13 63/123/13 +f 68/124/14 74/125/14 73/126/14 +f 78/127/17 76/128/17 75/129/17 +f 70/130/18 72/115/18 71/131/18 +f 72/115/19 64/105/19 65/132/19 +f 83/133/18 81/134/18 86/135/18 +f 85/136/20 79/137/20 84/138/20 +f 71/139/13 62/140/13 70/141/13 +f 83/133/15 92/142/15 100/143/15 +f 70/144/12 58/145/12 85/146/12 +f 98/147/21 94/148/21 89/149/21 +f 86/150/17 84/138/17 83/151/17 +f 57/152/18 80/117/18 79/137/18 +f 80/117/19 62/140/19 61/153/19 +f 96/154/14 60/155/14 100/156/14 +f 67/157/13 88/158/13 74/159/13 +f 88/158/16 90/160/16 93/161/16 +f 91/162/12 86/135/12 103/163/12 +f 90/164/14 94/148/14 93/165/14 +f 98/147/17 96/166/17 95/167/17 +f 75/168/18 91/169/18 78/170/18 +f 93/171/15 95/172/15 92/173/15 +f 104/174/21 100/156/21 60/155/21 +f 103/175/20 99/176/20 102/177/20 +f 97/178/12 89/179/12 87/180/12 +f 104/174/17 102/177/17 101/181/17 +f 116/182/20 112/183/20 113/184/20 +f 108/185/12 112/183/12 110/186/12 +f 116/187/15 114/188/15 118/189/15 +f 120/190/21 110/186/21 115/191/21 +f 114/188/19 108/185/19 117/192/19 +f 114/188/18 112/193/18 111/194/18 +f 110/195/17 116/182/17 115/196/17 +f 120/190/14 106/197/14 105/198/14 +f 108/199/13 118/200/13 117/201/13 +f 118/200/16 106/202/16 119/203/16 +f 132/204/20 128/205/20 129/206/20 +f 124/207/12 128/205/12 126/208/12 +f 132/209/15 130/210/15 134/211/15 +f 136/212/21 126/208/21 131/213/21 +f 130/210/19 124/207/19 133/214/19 +f 130/210/18 128/215/18 127/216/18 +f 126/217/17 132/204/17 131/218/17 +f 136/212/14 122/219/14 121/220/14 +f 124/221/13 134/222/13 133/223/13 +f 134/222/16 122/224/16 135/225/16 +f 78/107/12 67/226/12 68/227/12 +f 68/227/12 63/228/12 64/105/12 +f 64/105/12 69/229/12 70/106/12 +f 70/106/12 77/230/12 78/107/12 +f 78/107/12 68/227/12 64/105/12 +f 91/108/13 92/231/13 82/109/13 +f 76/111/14 77/232/14 59/112/14 +f 66/116/15 73/233/15 74/234/15 +f 74/234/15 75/235/15 76/114/15 +f 76/114/15 71/236/15 72/115/15 +f 72/115/15 65/132/15 66/116/15 +f 66/116/15 74/234/15 76/114/15 +f 82/119/15 83/237/15 84/238/15 +f 84/238/15 79/239/15 80/117/15 +f 80/117/15 61/153/15 71/118/15 +f 71/118/15 76/240/15 82/119/15 +f 82/119/15 84/238/15 80/117/15 +f 66/120/16 63/123/16 68/121/16 +f 66/120/13 65/132/13 64/105/13 +f 68/124/14 67/241/14 74/125/14 +f 78/127/17 77/242/17 76/128/17 +f 70/130/18 69/229/18 72/115/18 +f 72/115/19 69/229/19 64/105/19 +f 83/133/18 99/176/18 81/134/18 +f 85/136/20 57/152/20 79/137/20 +f 71/139/13 61/153/13 62/140/13 +f 100/143/15 101/243/15 102/244/15 +f 102/244/15 99/245/15 83/133/15 +f 83/133/15 82/109/15 92/142/15 +f 92/142/15 96/246/15 100/143/15 +f 100/143/15 102/244/15 83/133/15 +f 85/146/12 86/247/12 59/248/12 +f 59/248/12 77/249/12 70/144/12 +f 70/144/12 62/140/12 58/145/12 +f 58/145/12 57/250/12 85/146/12 +f 85/146/12 59/248/12 70/144/12 +f 98/147/21 95/167/21 94/148/21 +f 86/150/17 85/136/17 84/138/17 +f 57/152/18 58/145/18 80/117/18 +f 80/117/19 58/145/19 62/140/19 +f 96/154/14 97/251/14 60/155/14 +f 67/157/13 87/252/13 88/158/13 +f 88/158/16 87/252/16 90/160/16 +f 103/163/12 104/253/12 60/254/12 +f 60/254/12 97/255/12 91/162/12 +f 91/162/12 59/110/12 86/135/12 +f 86/135/12 81/256/12 103/163/12 +f 103/163/12 60/254/12 91/162/12 +f 90/164/14 89/149/14 94/148/14 +f 98/147/17 97/257/17 96/166/17 +f 75/168/18 92/258/18 91/169/18 +f 92/173/15 75/168/15 74/159/15 +f 74/159/15 88/259/15 93/171/15 +f 93/171/15 94/260/15 95/172/15 +f 95/172/15 96/261/15 92/173/15 +f 92/173/15 74/159/15 93/171/15 +f 104/174/21 101/181/21 100/156/21 +f 103/175/20 81/134/20 99/176/20 +f 87/180/12 67/157/12 78/170/12 +f 78/170/12 91/262/12 97/178/12 +f 97/178/12 98/263/12 89/179/12 +f 89/179/12 90/264/12 87/180/12 +f 87/180/12 78/170/12 97/178/12 +f 104/174/17 103/175/17 102/177/17 +f 116/182/20 109/265/20 112/183/20 +f 110/186/12 105/198/12 106/202/12 +f 106/202/12 107/266/12 108/185/12 +f 108/185/12 111/194/12 112/183/12 +f 112/183/12 109/265/12 110/186/12 +f 110/186/12 106/202/12 108/185/12 +f 118/189/15 119/267/15 120/268/15 +f 120/268/15 115/269/15 116/187/15 +f 116/187/15 113/270/15 114/188/15 +f 114/188/15 117/192/15 118/189/15 +f 118/189/15 120/268/15 116/187/15 +f 120/190/21 105/198/21 110/186/21 +f 114/188/19 111/194/19 108/185/19 +f 114/188/18 113/271/18 112/193/18 +f 110/195/17 109/265/17 116/182/17 +f 120/190/14 119/272/14 106/197/14 +f 108/199/13 107/266/13 118/200/13 +f 118/200/16 107/266/16 106/202/16 +f 132/204/20 125/273/20 128/205/20 +f 126/208/12 121/220/12 122/224/12 +f 122/224/12 123/274/12 124/207/12 +f 124/207/12 127/216/12 128/205/12 +f 128/205/12 125/273/12 126/208/12 +f 126/208/12 122/224/12 124/207/12 +f 134/211/15 135/275/15 136/276/15 +f 136/276/15 131/277/15 132/209/15 +f 132/209/15 129/278/15 130/210/15 +f 130/210/15 133/214/15 134/211/15 +f 134/211/15 136/276/15 132/209/15 +f 136/212/21 121/220/21 126/208/21 +f 130/210/19 127/216/19 124/207/19 +f 130/210/18 129/279/18 128/215/18 +f 126/217/17 125/273/17 132/204/17 +f 136/212/14 135/280/14 122/219/14 +f 124/221/13 123/274/13 134/222/13 +f 134/222/16 123/274/16 122/224/16 o Socket v -1.000000 0.000000 1.000000 v 1.000000 0.000000 1.000000 @@ -1037,199 +1073,199 @@ vn -0.7099 0.7043 0.0000 vn 0.7099 -0.7043 0.0000 vn -0.7071 -0.7071 0.0000 s off -f 131/265/22 130/266/22 129/267/22 -f 136/268/23 151/269/23 134/270/23 -f 131/265/24 140/271/24 132/272/24 -f 130/266/25 138/273/25 129/267/25 -f 132/272/26 139/274/26 130/266/26 -f 129/267/23 137/275/23 131/265/23 -f 135/276/27 138/277/27 133/278/27 -f 133/278/27 139/274/27 134/279/27 -f 134/279/27 140/280/27 136/281/27 -f 136/281/27 137/282/27 135/276/27 -f 142/283/26 143/284/26 141/285/26 -f 145/286/23 147/287/23 146/288/23 -f 151/269/27 149/289/27 150/290/27 -f 143/284/27 146/288/27 141/285/27 -f 144/291/24 145/286/24 143/284/24 -f 141/285/25 147/292/25 142/293/25 -f 133/294/26 149/289/26 135/295/26 -f 135/296/25 152/297/25 136/298/25 -f 134/299/24 150/290/24 133/300/24 -f 154/301/26 155/302/26 153/303/26 -f 157/304/23 159/305/23 158/306/23 -f 155/302/27 158/306/27 153/303/27 -f 156/307/24 157/304/24 155/302/24 -f 153/303/25 159/308/25 154/309/25 -f 162/310/23 163/311/23 161/312/23 -f 165/313/26 167/314/26 166/315/26 -f 163/311/27 166/315/27 161/312/27 -f 164/316/25 165/313/25 163/311/25 -f 161/312/24 167/317/24 162/318/24 -f 170/319/23 171/320/23 169/321/23 -f 173/322/26 175/323/26 174/324/26 -f 171/320/27 174/324/27 169/321/27 -f 172/325/25 173/322/25 171/320/25 -f 169/321/24 175/326/24 170/327/24 -f 178/328/24 179/329/24 177/330/24 -f 181/331/25 183/332/25 182/333/25 -f 179/329/27 182/333/27 177/330/27 -f 180/334/23 181/331/23 179/329/23 -f 177/330/26 183/335/26 178/336/26 -f 186/337/24 187/338/24 185/339/24 -f 189/340/25 191/341/25 190/342/25 -f 187/338/27 190/342/27 185/339/27 -f 188/343/23 189/340/23 187/338/23 -f 185/339/26 191/344/26 186/345/26 -f 194/346/25 195/347/25 193/348/25 -f 197/349/24 199/350/24 198/351/24 -f 195/347/27 198/351/27 193/348/27 -f 196/352/26 197/349/26 195/347/26 -f 193/348/23 199/353/23 194/354/23 -f 202/355/25 203/356/25 201/357/25 -f 205/358/24 207/359/24 206/360/24 -f 203/356/27 206/360/27 201/357/27 -f 204/361/26 205/358/26 203/356/26 -f 201/357/23 207/362/23 202/363/23 -f 210/364/24 225/365/24 209/366/24 -f 224/367/27 222/368/27 223/369/27 -f 220/370/27 218/371/27 219/372/27 -f 216/373/24 221/374/24 217/375/24 -f 215/376/25 219/377/25 214/378/25 -f 217/375/26 220/370/26 215/376/26 -f 214/379/23 218/380/23 216/373/23 -f 211/381/25 223/382/25 212/383/25 -f 209/366/26 224/367/26 211/381/26 -f 212/384/23 222/385/23 210/364/23 -f 227/386/24 241/387/24 226/388/24 -f 240/389/27 238/390/27 239/391/27 -f 236/392/27 234/393/27 235/394/27 -f 232/395/24 237/396/24 233/397/24 -f 231/398/25 235/399/25 230/400/25 -f 233/397/26 236/392/26 231/398/26 -f 230/401/23 234/402/23 232/395/23 -f 228/403/25 239/404/25 229/405/25 -f 226/388/26 240/389/26 228/403/26 -f 229/406/23 238/407/23 227/386/23 -f 242/408/27 243/409/27 213/410/27 -f 242/408/28 246/411/28 244/412/28 -f 245/413/26 248/414/26 246/411/26 -f 243/409/29 249/415/29 213/410/29 -f 250/416/23 251/417/23 249/415/23 -f 254/418/27 255/419/27 253/420/27 -f 254/418/28 258/421/28 256/422/28 -f 257/423/26 260/424/26 258/421/26 -f 255/419/29 261/425/29 253/420/29 -f 262/426/23 263/427/23 261/425/23 -f 217/375/22 214/428/22 216/429/22 -f 233/397/22 230/430/22 232/431/22 -f 228/403/22 227/432/22 226/388/22 -f 211/381/22 210/433/22 209/366/22 -f 266/434/26 267/435/26 268/436/26 -f 268/436/30 274/437/30 276/438/30 -f 269/439/23 272/440/23 271/441/23 -f 271/441/31 275/442/31 273/443/31 -f 274/437/22 275/442/22 276/438/22 -f 278/444/26 279/445/26 280/446/26 -f 280/446/30 286/447/30 288/448/30 -f 281/449/23 284/450/23 283/451/23 -f 283/451/31 287/452/31 285/453/31 -f 286/447/22 287/452/22 288/448/22 -f 131/265/22 132/272/22 130/266/22 -f 136/268/23 152/297/23 151/269/23 -f 131/265/24 137/454/24 140/271/24 -f 130/266/25 139/455/25 138/273/25 -f 132/272/26 140/280/26 139/274/26 -f 129/267/23 138/456/23 137/275/23 -f 135/276/27 137/282/27 138/277/27 -f 133/278/27 138/277/27 139/274/27 -f 134/279/27 139/274/27 140/280/27 -f 136/281/27 140/280/27 137/282/27 -f 142/283/26 144/457/26 143/284/26 -f 145/286/23 148/458/23 147/287/23 -f 151/269/27 152/297/27 149/289/27 -f 143/284/27 145/286/27 146/288/27 -f 144/291/24 148/459/24 145/286/24 -f 141/285/25 146/288/25 147/292/25 -f 133/294/26 150/290/26 149/289/26 -f 135/296/25 149/289/25 152/297/25 -f 134/299/24 151/269/24 150/290/24 -f 154/301/26 156/460/26 155/302/26 -f 157/304/23 160/461/23 159/305/23 -f 155/302/27 157/304/27 158/306/27 -f 156/307/24 160/462/24 157/304/24 -f 153/303/25 158/306/25 159/308/25 -f 162/310/23 164/463/23 163/311/23 -f 165/313/26 168/464/26 167/314/26 -f 163/311/27 165/313/27 166/315/27 -f 164/316/25 168/465/25 165/313/25 -f 161/312/24 166/315/24 167/317/24 -f 170/319/23 172/466/23 171/320/23 -f 173/322/26 176/467/26 175/323/26 -f 171/320/27 173/322/27 174/324/27 -f 172/325/25 176/468/25 173/322/25 -f 169/321/24 174/324/24 175/326/24 -f 178/328/24 180/469/24 179/329/24 -f 181/331/25 184/470/25 183/332/25 -f 179/329/27 181/331/27 182/333/27 -f 180/334/23 184/471/23 181/331/23 -f 177/330/26 182/333/26 183/335/26 -f 186/337/24 188/472/24 187/338/24 -f 189/340/25 192/473/25 191/341/25 -f 187/338/27 189/340/27 190/342/27 -f 188/343/23 192/474/23 189/340/23 -f 185/339/26 190/342/26 191/344/26 -f 194/346/25 196/475/25 195/347/25 -f 197/349/24 200/476/24 199/350/24 -f 195/347/27 197/349/27 198/351/27 -f 196/352/26 200/477/26 197/349/26 -f 193/348/23 198/351/23 199/353/23 -f 202/355/25 204/478/25 203/356/25 -f 205/358/24 208/479/24 207/359/24 -f 203/356/27 205/358/27 206/360/27 -f 204/361/26 208/480/26 205/358/26 -f 201/357/23 206/360/23 207/362/23 -f 210/364/24 222/385/24 225/365/24 -f 224/367/27 225/365/27 222/368/27 -f 220/370/27 221/374/27 218/371/27 -f 216/373/24 218/380/24 221/374/24 -f 215/376/25 220/370/25 219/377/25 -f 217/375/26 221/374/26 220/370/26 -f 214/379/23 219/481/23 218/380/23 -f 211/381/25 224/367/25 223/382/25 -f 209/366/26 225/365/26 224/367/26 -f 212/384/23 223/482/23 222/385/23 -f 227/386/24 238/407/24 241/387/24 -f 240/389/27 241/387/27 238/390/27 -f 236/392/27 237/396/27 234/393/27 -f 232/395/24 234/402/24 237/396/24 -f 231/398/25 236/392/25 235/399/25 -f 233/397/26 237/396/26 236/392/26 -f 230/401/23 235/483/23 234/402/23 -f 228/403/25 240/389/25 239/404/25 -f 226/388/26 241/387/26 240/389/26 -f 229/406/23 239/484/23 238/407/23 -f 242/408/27 244/412/27 243/409/27 -f 242/408/28 245/413/28 246/411/28 -f 245/413/26 247/485/26 248/414/26 -f 243/409/29 250/416/29 249/415/29 -f 250/416/23 252/486/23 251/417/23 -f 254/418/27 256/422/27 255/419/27 -f 254/418/28 257/423/28 258/421/28 -f 257/423/26 259/487/26 260/424/26 -f 255/419/29 262/426/29 261/425/29 -f 262/426/23 264/488/23 263/427/23 -f 217/375/22 215/376/22 214/428/22 -f 233/397/22 231/398/22 230/430/22 -f 228/403/22 229/489/22 227/432/22 -f 211/381/22 212/490/22 210/433/22 -f 266/434/26 265/491/26 267/435/26 -f 268/436/30 267/435/30 274/437/30 -f 269/439/23 270/492/23 272/440/23 -f 271/441/31 272/440/31 275/442/31 -f 274/437/22 273/443/22 275/442/22 -f 278/444/26 277/493/26 279/445/26 -f 280/446/30 279/445/30 286/447/30 -f 281/449/23 282/494/23 284/450/23 -f 283/451/31 284/450/31 287/452/31 -f 286/447/22 285/453/22 287/452/22 +f 139/281/22 138/282/22 137/283/22 +f 144/284/23 159/285/23 142/286/23 +f 139/281/24 148/287/24 140/288/24 +f 138/282/25 146/289/25 137/283/25 +f 140/288/26 147/290/26 138/282/26 +f 137/283/23 145/291/23 139/281/23 +f 143/292/27 146/293/27 141/294/27 +f 141/294/27 147/290/27 142/295/27 +f 142/295/27 148/296/27 144/297/27 +f 144/297/27 145/298/27 143/292/27 +f 150/299/26 151/300/26 149/301/26 +f 153/302/23 155/303/23 154/304/23 +f 159/285/27 157/305/27 158/306/27 +f 151/300/27 154/304/27 149/301/27 +f 152/307/24 153/302/24 151/300/24 +f 149/301/25 155/308/25 150/309/25 +f 141/310/26 157/305/26 143/311/26 +f 143/312/25 160/313/25 144/314/25 +f 142/315/24 158/306/24 141/316/24 +f 162/317/26 163/318/26 161/319/26 +f 165/320/23 167/321/23 166/322/23 +f 163/318/27 166/322/27 161/319/27 +f 164/323/24 165/320/24 163/318/24 +f 161/319/25 167/324/25 162/325/25 +f 170/326/23 171/327/23 169/328/23 +f 173/329/26 175/330/26 174/331/26 +f 171/327/27 174/331/27 169/328/27 +f 172/332/25 173/329/25 171/327/25 +f 169/328/24 175/333/24 170/334/24 +f 178/335/23 179/336/23 177/337/23 +f 181/338/26 183/339/26 182/340/26 +f 179/336/27 182/340/27 177/337/27 +f 180/341/25 181/338/25 179/336/25 +f 177/337/24 183/342/24 178/343/24 +f 186/344/24 187/345/24 185/346/24 +f 189/347/25 191/348/25 190/349/25 +f 187/345/27 190/349/27 185/346/27 +f 188/350/23 189/347/23 187/345/23 +f 185/346/26 191/351/26 186/352/26 +f 194/353/24 195/354/24 193/355/24 +f 197/356/25 199/357/25 198/358/25 +f 195/354/27 198/358/27 193/355/27 +f 196/359/23 197/356/23 195/354/23 +f 193/355/26 199/360/26 194/361/26 +f 202/362/25 203/363/25 201/364/25 +f 205/365/24 207/366/24 206/367/24 +f 203/363/27 206/367/27 201/364/27 +f 204/368/26 205/365/26 203/363/26 +f 201/364/23 207/369/23 202/370/23 +f 210/371/25 211/372/25 209/373/25 +f 213/374/24 215/375/24 214/376/24 +f 211/372/27 214/376/27 209/373/27 +f 212/377/26 213/374/26 211/372/26 +f 209/373/23 215/378/23 210/379/23 +f 218/380/24 233/381/24 217/382/24 +f 232/383/27 230/384/27 231/385/27 +f 228/386/27 226/387/27 227/388/27 +f 224/389/24 229/390/24 225/391/24 +f 223/392/25 227/393/25 222/394/25 +f 225/391/26 228/386/26 223/392/26 +f 222/395/23 226/396/23 224/389/23 +f 219/397/25 231/398/25 220/399/25 +f 217/382/26 232/383/26 219/397/26 +f 220/400/23 230/401/23 218/380/23 +f 235/402/24 249/403/24 234/404/24 +f 248/405/27 246/406/27 247/407/27 +f 244/408/27 242/409/27 243/410/27 +f 240/411/24 245/412/24 241/413/24 +f 239/414/25 243/415/25 238/416/25 +f 241/413/26 244/408/26 239/414/26 +f 238/417/23 242/418/23 240/411/23 +f 236/419/25 247/420/25 237/421/25 +f 234/404/26 248/405/26 236/419/26 +f 237/422/23 246/423/23 235/402/23 +f 250/424/27 251/425/27 221/426/27 +f 250/424/28 254/427/28 252/428/28 +f 253/429/26 256/430/26 254/427/26 +f 251/425/29 257/431/29 221/426/29 +f 258/432/23 259/433/23 257/431/23 +f 262/434/27 263/435/27 261/436/27 +f 262/434/28 266/437/28 264/438/28 +f 265/439/26 268/440/26 266/437/26 +f 263/435/29 269/441/29 261/436/29 +f 270/442/23 271/443/23 269/441/23 +f 225/391/22 222/444/22 224/445/22 +f 241/413/22 238/446/22 240/447/22 +f 236/419/22 235/448/22 234/404/22 +f 219/397/22 218/449/22 217/382/22 +f 274/450/26 275/451/26 276/452/26 +f 276/452/30 282/453/30 284/454/30 +f 277/455/23 280/456/23 279/457/23 +f 279/457/31 283/458/31 281/459/31 +f 282/453/22 283/458/22 284/454/22 +f 286/460/26 287/461/26 288/462/26 +f 288/462/30 294/463/30 296/464/30 +f 289/465/23 292/466/23 291/467/23 +f 291/467/31 295/468/31 293/469/31 +f 294/463/22 295/468/22 296/464/22 +f 139/281/22 140/288/22 138/282/22 +f 144/284/23 160/313/23 159/285/23 +f 139/281/24 145/470/24 148/287/24 +f 138/282/25 147/471/25 146/289/25 +f 140/288/26 148/296/26 147/290/26 +f 137/283/23 146/472/23 145/291/23 +f 143/292/27 145/298/27 146/293/27 +f 141/294/27 146/293/27 147/290/27 +f 142/295/27 147/290/27 148/296/27 +f 144/297/27 148/296/27 145/298/27 +f 150/299/26 152/473/26 151/300/26 +f 153/302/23 156/474/23 155/303/23 +f 159/285/27 160/313/27 157/305/27 +f 151/300/27 153/302/27 154/304/27 +f 152/307/24 156/475/24 153/302/24 +f 149/301/25 154/304/25 155/308/25 +f 141/310/26 158/306/26 157/305/26 +f 143/312/25 157/305/25 160/313/25 +f 142/315/24 159/285/24 158/306/24 +f 162/317/26 164/476/26 163/318/26 +f 165/320/23 168/477/23 167/321/23 +f 163/318/27 165/320/27 166/322/27 +f 164/323/24 168/478/24 165/320/24 +f 161/319/25 166/322/25 167/324/25 +f 170/326/23 172/479/23 171/327/23 +f 173/329/26 176/480/26 175/330/26 +f 171/327/27 173/329/27 174/331/27 +f 172/332/25 176/481/25 173/329/25 +f 169/328/24 174/331/24 175/333/24 +f 178/335/23 180/482/23 179/336/23 +f 181/338/26 184/483/26 183/339/26 +f 179/336/27 181/338/27 182/340/27 +f 180/341/25 184/484/25 181/338/25 +f 177/337/24 182/340/24 183/342/24 +f 186/344/24 188/485/24 187/345/24 +f 189/347/25 192/486/25 191/348/25 +f 187/345/27 189/347/27 190/349/27 +f 188/350/23 192/487/23 189/347/23 +f 185/346/26 190/349/26 191/351/26 +f 194/353/24 196/488/24 195/354/24 +f 197/356/25 200/489/25 199/357/25 +f 195/354/27 197/356/27 198/358/27 +f 196/359/23 200/490/23 197/356/23 +f 193/355/26 198/358/26 199/360/26 +f 202/362/25 204/491/25 203/363/25 +f 205/365/24 208/492/24 207/366/24 +f 203/363/27 205/365/27 206/367/27 +f 204/368/26 208/493/26 205/365/26 +f 201/364/23 206/367/23 207/369/23 +f 210/371/25 212/494/25 211/372/25 +f 213/374/24 216/495/24 215/375/24 +f 211/372/27 213/374/27 214/376/27 +f 212/377/26 216/496/26 213/374/26 +f 209/373/23 214/376/23 215/378/23 +f 218/380/24 230/401/24 233/381/24 +f 232/383/27 233/381/27 230/384/27 +f 228/386/27 229/390/27 226/387/27 +f 224/389/24 226/396/24 229/390/24 +f 223/392/25 228/386/25 227/393/25 +f 225/391/26 229/390/26 228/386/26 +f 222/395/23 227/497/23 226/396/23 +f 219/397/25 232/383/25 231/398/25 +f 217/382/26 233/381/26 232/383/26 +f 220/400/23 231/498/23 230/401/23 +f 235/402/24 246/423/24 249/403/24 +f 248/405/27 249/403/27 246/406/27 +f 244/408/27 245/412/27 242/409/27 +f 240/411/24 242/418/24 245/412/24 +f 239/414/25 244/408/25 243/415/25 +f 241/413/26 245/412/26 244/408/26 +f 238/417/23 243/499/23 242/418/23 +f 236/419/25 248/405/25 247/420/25 +f 234/404/26 249/403/26 248/405/26 +f 237/422/23 247/500/23 246/423/23 +f 250/424/27 252/428/27 251/425/27 +f 250/424/28 253/429/28 254/427/28 +f 253/429/26 255/501/26 256/430/26 +f 251/425/29 258/432/29 257/431/29 +f 258/432/23 260/502/23 259/433/23 +f 262/434/27 264/438/27 263/435/27 +f 262/434/28 265/439/28 266/437/28 +f 265/439/26 267/503/26 268/440/26 +f 263/435/29 270/442/29 269/441/29 +f 270/442/23 272/504/23 271/443/23 +f 225/391/22 223/392/22 222/444/22 +f 241/413/22 239/414/22 238/446/22 +f 236/419/22 237/505/22 235/448/22 +f 219/397/22 220/506/22 218/449/22 +f 274/450/26 273/507/26 275/451/26 +f 276/452/30 275/451/30 282/453/30 +f 277/455/23 278/508/23 280/456/23 +f 279/457/31 280/456/31 283/458/31 +f 282/453/22 281/459/22 283/458/22 +f 286/460/26 285/509/26 287/461/26 +f 288/462/30 287/461/30 294/463/30 +f 289/465/23 290/510/23 292/466/23 +f 291/467/31 292/466/31 295/468/31 +f 294/463/22 293/469/22 295/468/22 diff --git a/src/main/resources/assets/hbm/models/machines/radar_screen.obj b/src/main/resources/assets/hbm/models/machines/radar_screen.obj index 18f4a3cc5..3f69a3c90 100644 --- a/src/main/resources/assets/hbm/models/machines/radar_screen.obj +++ b/src/main/resources/assets/hbm/models/machines/radar_screen.obj @@ -47,9 +47,9 @@ 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.954545 0.285714 vt 0.681818 0.714286 -vt 0.681818 0.267857 +vt 0.681818 0.285714 vt 0.500000 0.107143 vt 0.772727 0.035714 vt 0.772727 0.107143 diff --git a/src/main/resources/assets/hbm/textures/items/satellite.xenium_resonator.png b/src/main/resources/assets/hbm/textures/items/satellite.xenium_resonator.png new file mode 100644 index 000000000..fd49d5ce6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/satellite.xenium_resonator.png differ