You're IC2 config is incompatible with that bugged version of the mod, use the latest from 1.6.4 or download my Techromancer modpack which has it all included in a beefy PvE setup.
Rollback Post to RevisionRollBack
Come visit us on WorldWarMinecraft series, now with space fights! Modpack is available here. Only 1GB RAM required! Lots of fun and no lag!
Visit our Voltz PvP/raid server at pvp.worldwarminecraft.net:25555 .
Join the PvE survival challenge on FunSquareGamesArcania craft.
It notably fixes IC2 client-side glitches after jump, ship controller not booting and the usual bucket of bug fixes.
World generation is fairly unstable as we are updating to the new XML based configurations.
Rollback Post to RevisionRollBack
Come visit us on WorldWarMinecraft series, now with space fights! Modpack is available here. Only 1GB RAM required! Lots of fun and no lag!
Visit our Voltz PvP/raid server at pvp.worldwarminecraft.net:25555 .
Join the PvE survival challenge on FunSquareGamesArcania craft.
It takes a bit of time for Curse team to approve it, try again!
Rollback Post to RevisionRollBack
Come visit us on WorldWarMinecraft series, now with space fights! Modpack is available here. Only 1GB RAM required! Lots of fun and no lag!
Visit our Voltz PvP/raid server at pvp.worldwarminecraft.net:25555 .
Join the PvE survival challenge on FunSquareGamesArcania craft.
What do each each of the Warp Controller modes (set with Controller.mode(Number)) do, and why (in the program provided) does the script switch off all the cores before jumping? I am creating my own program to use the warp controller. When can we expect documentation for the controller on the wiki?
What do each each of the Warp Controller modes (set with Controller.mode(Number)) do, and why (in the program provided) does the script switch off all the cores before jumping? I am creating my own program to use the warp controller. When can we expect documentation for the controller on the wiki?
Here's the list of modes possible:
0 = IDLE
1 = BASIC_JUMP (space/overworld)
2 = LONG_JUMP (hyperspace)
3 = TELEPORT
4 = BEACON_JUMP (jump ship to a beacon)
5 = HYPERSPACE (jump to/from Hyperspace)
6 = GATE_JUMP (jump via a jumpgate)
What do you mean by "switch off all the cores before jumping"?
The script assumes you've an ICBM alarm or a redstone light above the computer to warn players on board. It does a 1s on/off on it before doing the actual jump. Is that what you mean?
The wiki doesn't describe it because we need to change the API, for multiple reasons:
1- Most of it dates from the original Industrial Aerospace mod which was way more complicated.
2- We can't jump in diagonals, we're currently constrains to single axis movement.
3- There's a couple 'security' flaw in the current ship controller API.
Rollback Post to RevisionRollBack
Come visit us on WorldWarMinecraft series, now with space fights! Modpack is available here. Only 1GB RAM required! Lots of fun and no lag!
Visit our Voltz PvP/raid server at pvp.worldwarminecraft.net:25555 .
Join the PvE survival challenge on FunSquareGamesArcania craft.
Whenever you decide to rewrite the API, could you add a function that takes a set of coordinates and then attempts to jump as far in that direction as it can?
I have written a GUI to work with the current warp controller API. I did use some of the code from the existing program, but the rest was written by me.
Code:
local LogFile = "DebugLog"
local WarpControllerBase = "warpdriveShipController_"
local Data = {
Name = "TestShip1",
Mode = "Normal Jump",
Dimensions = {Front = 8, Back = 8, Left = 8, Right = 8, Up = 3, Down = 6},
JumpData = {RealDistance = 0, Direction = "Forward", Distance = 50, Gate = " ", NavTbl = {}}
}
function GetWarpController()
for i=0,500 do
local Periph = peripheral.wrap(WarpControllerBase..i)
if (Periph ~= nil) then
return Periph
end
end
return nil
end
function TranlateModes(Mode)
if (Mode == "Off") then
return ("Mode: OFF ")
elseif (Mode == "Normal Jump") then
return ("Mode: Normal Jump ")
elseif (Mode == "Hyperspace Transition") then
return ("Mode: Hyperspace Transition")
elseif (Mode == "Jumpgate") then
return ("Mode: Jumpgate ")
end
end
function TranslateText(Text, Size)
local Len = string.len(Text)
for i=1,(math.floor(Size-Len)) do
Text = Text.." "
end
return Text
end
function SetDims()
term.setCursorPos(1,1)
term.setTextColor(colors.white)
term.setBackgroundColor(colors.black)
term.clear()
-----
term.write("Set Dimensions: ")
print(" ")
term.write(" Front ("..Data.Dimensions.Front..") > ")
Data.Dimensions.Front = tonumber(read()) or Data.Dimensions.Front
term.write(" Back ("..Data.Dimensions.Back..") > ")
Data.Dimensions.Back = tonumber(read()) or Data.Dimensions.Back
term.write(" Right ("..Data.Dimensions.Right..") > ")
Data.Dimensions.Right = tonumber(read()) or Data.Dimensions.Right
term.write(" Left ("..Data.Dimensions.Left..") > ")
Data.Dimensions.Left = tonumber(read()) or Data.Dimensions.Left
term.write(" Up ("..Data.Dimensions.Up..") > ")
Data.Dimensions.Up = tonumber(read()) or Data.Dimensions.Up
term.write(" Down ("..Data.Dimensions.Down..") > ")
Data.Dimensions.Down = tonumber(read()) or Data.Dimensions.Down
-----
term.write("Dimensions Set")
end
function SetDist()
term.setCursorPos(1,1)
term.setTextColor(colors.white)
term.setBackgroundColor(colors.black)
term.clear()
------------------------------------Distance Set
if (Data.Mode == "Normal Jump") or (Data.Mode == "Hyperspace Transition") then
Data.JumpData.Distance = 0
CalcRealDistance()
MaximumDistance = MinimumDistance + (128 * (wc.isInHyperspace() and 100 or 1))
-----
term.write("---- Set Jump Distance ----")
print(" ")
if IsInHyper then
term.write("Distance * 100 (min "..MinimumDistance..", max "..MaximumDistance.."): ")
else
term.write("Distance (min "..MinimumDistance..", max "..MaximumDistance.."): ")
end
----
sleep(0.3)
local NDistance = tonumber(read())
if NDistance == nil then Data.JumpData.Distance = 1 end
if NDistance < MinimumDistance or Data.JumpData.Distance > MaximumDistance then
Data.JumpData.Distance = 1
print("Wrong distance. Try again.")
sleep(1)
CalcRealDistance()
else
Data.JumpData.Distance = NDistance
if not wc.isInHyperspace() then
Data.JumpData.Distance = Data.JumpData.Distance - Data.JumpData.RealDistance
end
CalcRealDistance()
end
elseif (Data.Mode == "Jumpgate") then
-------------------------------Gate Set
term.write("Enter Jumpgate name: ")
local name = tostring(read())
if (name ~= nil) then
Data.JumpData.Gate = name
end
end
end
function DistButtonDisp()
if (Data.Mode == "Normal Jump") or (Data.Mode == "Hyperspace Transition") then
return {Text = "[ Set Jump Distance ]", TextCol = colors.black, BackCol = colors.green}
elseif (Data.Mode == "Jumpgate") then
return {Text = "[ Set Gate Name ]", TextCol = colors.black, BackCol = colors.green}
else
return {Text = "[ Set Jump Distance ]", TextCol = colors.black, BackCol = colors.green}
end
end
function DistLabelDisp()
if (Data.Mode == "Normal Jump") or (Data.Mode == "Hyperspace Transition") then
return {Text = "Dir: "..TranslateText(Data.JumpData.Direction, 8).." Dist: "..TranslateText(Data.JumpData.RealDistance, 5), TextCol = colors.black, BackCol = colors.blue}
elseif (Data.Mode == "Jumpgate") then
return {Text = "Gate: "..TranslateText(Data.JumpData.Gate, 20), TextCol = colors.black, BackCol = colors.blue}
else
return {Text = "Dir: "..TranslateText(Data.JumpData.Direction, 8).." Dist: "..TranslateText(Data.JumpData.RealDistance, 5), TextCol = colors.black, BackCol = colors.blue}
end
end
function PwrLabelFunc()
local Cost = wc.getEnergyRequired(Data.JumpData.Distance)
Cost = math.ceil(Cost/1000)
if (wc.getEnergyLevel() >= Cost) then
return {Text = "EnergyReq: "..TranslateText(Cost.."k EU", 10), TextCol = colors.black, BackCol = colors.blue}
else
return {Text = "EnergyReq: "..TranslateText(Cost.."k EU", 10), TextCol = colors.black, BackCol = colors.red}
end
end
function ProgressNumber(StartNum, EndNum, MaxIncr)
if (StartNum > EndNum) then
if (StartNum - MaxIncr < EndNum) then return EndNum end
return StartNum - MaxIncr
else
if (StartNum + MaxIncr > EndNum) then return EndNum end
return StartNum + MaxIncr
end
end
local Screens = {
---Main Menu
[1] = {
{
{Type = "TextLabel", DispFunc = function() return {Text = " Helm Control Program Created By Spector19 ", TextCol = colors.black, BackCol = colors.orange} end, Position = {1,0}},
Settings = {Offset = {1,1}, BorderBColor = colors.yellow, BorderTColor = colors.black, BorderText = " ",},
---Warp Commands Menu
{Type = "TextLabel", DispFunc = function() return {Text = " Functions ", TextCol = colors.black, BackCol = colors.yellow} end, Position = {1,1}},
{Type = "Button", DispFunc = function() return {Text = "[ Set WarpCore Mode ]", TextCol = colors.black, BackCol = colors.green} end, Function = function() slc = 2 end, Position = {1,2}, Active = true},
{Type = "Button", DispFunc = function() return {Text = "[ Set Jump Direction]", TextCol = colors.black, BackCol = colors.green} end, Function = function() slc = 3 end, Position = {1,3}, Active = true},
{Type = "Button", DispFunc = DistButtonDisp, Function = function() SetDist() end, Position = {1,4}, Active = true},
{Type = "Button", DispFunc = function() return {Text = "[ Set Dimensions ]", TextCol = colors.black, BackCol = colors.green} end, Function = function() SetDims() end, Position = {1,5}, Active = true},
{Type = "Button", DispFunc = function() return {Text = "[ Jump ]", TextCol = colors.black, BackCol = colors.green} end, Function = function() Jump(Data, wc) end, Position = {1,6}, Active = true},
function DrawScreen()
term.setBackgroundColor(colors.black)
term.clear()
local Screen = Screens[slc]
for _,Menu in pairs(Screen) do
for i,p in pairs(Menu) do
if (p.Type ~= nil) then
if (p.Type == "TextLabel") then
--TextLabel
local DispInfo = p.DispFunc()
term.setCursorPos((p.Position[1]-1)+Menu.Settings.Offset[1], p.Position[2]+Menu.Settings.Offset[2])
term.setTextColor(Menu.Settings.BorderTColor)
term.setBackgroundColor(Menu.Settings.BorderBColor)
print(Menu.Settings.BorderText)
term.setCursorPos((p.Position[1]+string.len(DispInfo.Text))+Menu.Settings.Offset[1], p.Position[2]+Menu.Settings.Offset[2])
term.setTextColor(Menu.Settings.BorderTColor)
term.setBackgroundColor(Menu.Settings.BorderBColor)
print(Menu.Settings.BorderText)
---
term.setCursorPos(p.Position[1]+Menu.Settings.Offset[1], p.Position[2]+Menu.Settings.Offset[2])
term.setTextColor(DispInfo.TextCol)
term.setBackgroundColor(DispInfo.BackCol)
print(DispInfo.Text)
elseif (p.Type == "Button") then
----Button
local DispInfo = p.DispFunc()
term.setCursorPos((p.Position[1]-1)+Menu.Settings.Offset[1], p.Position[2]+Menu.Settings.Offset[2])
term.setTextColor(Menu.Settings.BorderTColor)
term.setBackgroundColor(Menu.Settings.BorderBColor)
print(Menu.Settings.BorderText)
term.setCursorPos((p.Position[1]+string.len(DispInfo.Text))+Menu.Settings.Offset[1], p.Position[2]+Menu.Settings.Offset[2])
term.setTextColor(Menu.Settings.BorderTColor)
term.setBackgroundColor(Menu.Settings.BorderBColor)
print(Menu.Settings.BorderText)
---
term.setCursorPos(p.Position[1]+Menu.Settings.Offset[1], p.Position[2]+Menu.Settings.Offset[2])
term.setTextColor(DispInfo.TextCol)
term.setBackgroundColor(DispInfo.BackCol)
print(DispInfo.Text)
end
end
end
end
end
function CheckClick(x,y)
local Screen = Screens[slc]
for _,Menu in pairs(Screen) do
for i,p in pairs(Menu) do
if (p.Type ~= nil) then
if (p.Type == "Button") then
---Button
local DispInfo = p.DispFunc()
if (y == p.Position[2]+Menu.Settings.Offset[2]) and (x >= p.Position[1]+Menu.Settings.Offset[1]) and (x <= (p.Position[1] + (string.len(DispInfo.Text)-1))+Menu.Settings.Offset[1]) then
p.Function()
end
---
end
end
end
end
end
function ScreenClicks()
local event, button, x, y = os.pullEvent("mouse_click")
CheckClick(x,y)
end
-----------------------------------------------------------------------------------------
function SaveData()
local file = fs.open("HelmData", "w")
local str = textutils.serialize(Data)
if str~="{}" then
file.writeLine(str)
end
file.close()
end
function ReadData()
local file = fs.open("HelmData", "r")
Data = textutils.unserialize(file.readAll())
file.close()
end
if (fs.exists("HelmData")) then
ReadData()
else
SaveData()
end
function dlog(data)
file = fs.open(LogFile,fs.exists(LogFile) and "a" or "w")
file.writeLine(data)
file.close()
end
function CalcRealDistance()
if wc.isInHyperspace() then
Data.JumpData.RealDistance = Data.JumpData.Distance * 100
MinimumDistance = 1
else
if Data.JumpData.Direction == "Up" or Data.JumpData.Direction == "Down" then
MinimumDistance = Data.Dimensions.Up + Data.Dimensions.Down
Data.JumpData.RealDistance = Data.JumpData.Distance + MinimumDistance
elseif Data.JumpData.Direction == "Backward" or Data.JumpData.Direction == "Forward" then
MinimumDistance = Data.Dimensions.Front + Data.Dimensions.Back
Data.JumpData.RealDistance = Data.JumpData.Distance + MinimumDistance
elseif Data.JumpData.Direction == "Right" or Data.JumpData.Direction == "Left" then
MinimumDistance = Data.Dimensions.Left + Data.Dimensions.Right
Data.JumpData.RealDistance = Data.JumpData.Distance + MinimumDistance
end
MinimumDistance = MinimumDistance + 1
end
end
function UpdateCore(tbl, wc)
wc.coreFrequency(tbl.Name)
wc.dim_positive(tbl.Dimensions.Front, tbl.Dimensions.Right, tbl.Dimensions.Up)
wc.dim_negative(tbl.Dimensions.Back, tbl.Dimensions.Left, tbl.Dimensions.Down)
wc.direction(Refrences[tbl.JumpData.Direction])
wc.distance(tbl.JumpData.Distance)
wc.targetJumpgate(tbl.JumpData.Gate)
if (tbl.Mode == "Normal Jump") then
if (wc.isInHyperspace()) then
wc.mode(2)
else
wc.mode(1)
end
elseif (tbl.Mode == "Off") then
wc.mode(0)
elseif (tbl.Mode == "Hyperspace Transition") then
wc.mode(5)
elseif (tbl.Mode == "Jumpgate") then
wc.mode(6)
end
end
function Jump(tbl, wc)
if (tbl.Mode ~= "Off") then
wc.jump()
end
end
------------------------------------- Main Loop
while true do
UpdateCore(Data, wc)
SaveData()
DrawScreen()
ScreenClicks()
end
Whenever you decide to rewrite the API, could you add a function that takes a set of coordinates and then attempts to jump as far in that direction as it can?
Sounds like a good idea, we'll see to add that in.
Rollback Post to RevisionRollBack
Come visit us on WorldWarMinecraft series, now with space fights! Modpack is available here. Only 1GB RAM required! Lots of fun and no lag!
Visit our Voltz PvP/raid server at pvp.worldwarminecraft.net:25555 .
Join the PvE survival challenge on FunSquareGamesArcania craft.
I don't think this is a good idea. Correct me if I am wrong, but I think this has been discussed in the thread (and used in an earlier version of the mod, too) and dismissed for several reasons:
1) more lag, especially with bigger ships;
2) the amount of work to calculate/implement the rotation of all possible blocks.
How about you instead arrange your lasers so that they collectively cover all the 360 degrees around the ship?
Can you please add turning? I really don't like the fact that my ship can't turn to fight. Please make it in degrees.
How do you expect to turn in degrees in a cubic world which is, by nature, aligned to 90 deg steps?
Rollback Post to RevisionRollBack
Come visit us on WorldWarMinecraft series, now with space fights! Modpack is available here. Only 1GB RAM required! Lots of fun and no lag!
Visit our Voltz PvP/raid server at pvp.worldwarminecraft.net:25555 .
Join the PvE survival challenge on FunSquareGamesArcania craft.
EDIT: I think this may have something to do with the air generators, because when I broke them the air did not stop generating.
I am getting an error when attempting to jump. It plays the sound and applies the nausea effect, but does not actually move the ship. I only have ic2/computercraft/warpdrive blocks on the ship, and it worked in the overworld, but not now that I am in space. The error is as follows:
8:55:32] [Server thread/INFO] [WarpDrive]: Profiling 'EntityJump.getRealShipVolume_checkBedrock': 0.95 ms, total: 0.95 ms
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: java.lang.ArrayIndexOutOfBoundsException: 1295
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cr0s.warpdrive.EntityJump.saveShip(EntityJump.java:728)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cr0s.warpdrive.EntityJump.prepareToJump(EntityJump.java:515)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cr0s.warpdrive.EntityJump.func_70071_h_(EntityJump.java:181)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.world.World.func_72866_a(World.java:2070)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.world.WorldServer.func_72866_a(WorldServer.java:648)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.world.World.func_72870_g(World.java:2034)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at WorldServerOF.func_72870_g(WorldServerOF.java:347)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.world.World.func_72939_s(World.java:1887)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:489)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:636)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:186)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685)
[18:55:32] [Server thread/INFO] [WarpDrive]: Profiling 'EntityJump.unforceChunks': 1.256 ms, total: 1.256 ms
[18:55:32] [Server thread/INFO] [WarpDrive]: Profiling 'EntityJump.saveShip': 6.615 ms, total: 7.872 ms
[18:55:32] [Server thread/INFO] [WarpDrive]: Profiling 'EntityJump.prepareToJump': 2.966 ms, total: 12.876 ms
[18:55:32] [Client thread/INFO]: [CHAT] [EliShip1] Jumping FRONT by 60 blocks
EDIT: I think this may have something to do with the air generators, because when I broke them the air did not stop generating.
I am getting an error when attempting to jump. It plays the sound and applies the nausea effect, but does not actually move the ship. I only have ic2/computercraft/warpdrive blocks on the ship, and it worked in the overworld, but not now that I am in space. The error is as follows:
8:55:32] [Server thread/INFO] [WarpDrive]: Profiling 'EntityJump.getRealShipVolume_checkBedrock': 0.95 ms, total: 0.95 ms
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: java.lang.ArrayIndexOutOfBoundsException: 1295
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cr0s.warpdrive.EntityJump.saveShip(EntityJump.java:728)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cr0s.warpdrive.EntityJump.prepareToJump(EntityJump.java:515)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cr0s.warpdrive.EntityJump.func_70071_h_(EntityJump.java:181)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.world.World.func_72866_a(World.java:2070)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.world.WorldServer.func_72866_a(WorldServer.java:648)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.world.World.func_72870_g(World.java:2034)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at WorldServerOF.func_72870_g(WorldServerOF.java:347)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.world.World.func_72939_s(World.java:1887)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:489)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:636)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:186)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685)
[18:55:32] [Server thread/INFO] [WarpDrive]: Profiling 'EntityJump.unforceChunks': 1.256 ms, total: 1.256 ms
[18:55:32] [Server thread/INFO] [WarpDrive]: Profiling 'EntityJump.saveShip': 6.615 ms, total: 7.872 ms
[18:55:32] [Server thread/INFO] [WarpDrive]: Profiling 'EntityJump.prepareToJump': 2.966 ms, total: 12.876 ms
[18:55:32] [Client thread/INFO]: [CHAT] [EliShip1] Jumping FRONT by 60 blocks
This is fixed in upcoming 1.3.5 :).
Rollback Post to RevisionRollBack
Come visit us on WorldWarMinecraft series, now with space fights! Modpack is available here. Only 1GB RAM required! Lots of fun and no lag!
Visit our Voltz PvP/raid server at pvp.worldwarminecraft.net:25555 .
Join the PvE survival challenge on FunSquareGamesArcania craft.
This include fixes for dedicated server support, cloaking tier 1, IC2 reactor monitor and the usual bucket of bug fixes and optimizations.
There's no world generation in space, it's still a wip, but at least it won't crash you now :).
Please note that configuration was largely updated, it's in a subfolder, entries are bit more explicit with finer control on weapon effects.
Rollback Post to RevisionRollBack
Come visit us on WorldWarMinecraft series, now with space fights! Modpack is available here. Only 1GB RAM required! Lots of fun and no lag!
Visit our Voltz PvP/raid server at pvp.worldwarminecraft.net:25555 .
Join the PvE survival challenge on FunSquareGamesArcania craft.
The update has not fixed my issue. The ship still refuses to jump, and the air will not de-spawn.
EDIT: After some testing, i found that is definitely the air generators, or at least the air, that is preventing ships from jumping. I tried this on several different worlds and ships, all with the same results.
Please do use spoilers when posting logs.
You're IC2 config is incompatible with that bugged version of the mod, use the latest from 1.6.4 or download my Techromancer modpack which has it all included in a beefy PvE setup.
Come visit us on WorldWarMinecraft series, now with space fights! Modpack is available here. Only 1GB RAM required! Lots of fun and no lag!
Visit our Voltz PvP/raid server at pvp.worldwarminecraft.net:25555 .
Join the PvE survival challenge on FunSquareGames Arcania craft.
Version 1.3.4 has been uploaded to CurseForge http://minecraft.curseforge.com/mc-mods/233565-warpdrive/files/2253205 .
It notably fixes IC2 client-side glitches after jump, ship controller not booting and the usual bucket of bug fixes.
World generation is fairly unstable as we are updating to the new XML based configurations.
Come visit us on WorldWarMinecraft series, now with space fights! Modpack is available here. Only 1GB RAM required! Lots of fun and no lag!
Visit our Voltz PvP/raid server at pvp.worldwarminecraft.net:25555 .
Join the PvE survival challenge on FunSquareGames Arcania craft.
Hmm, seems like there's nothing there.
It takes a bit of time for Curse team to approve it, try again!
Come visit us on WorldWarMinecraft series, now with space fights! Modpack is available here. Only 1GB RAM required! Lots of fun and no lag!
Visit our Voltz PvP/raid server at pvp.worldwarminecraft.net:25555 .
Join the PvE survival challenge on FunSquareGames Arcania craft.
What do each each of the Warp Controller modes (set with Controller.mode(Number)) do, and why (in the program provided) does the script switch off all the cores before jumping? I am creating my own program to use the warp controller. When can we expect documentation for the controller on the wiki?
Here's the list of modes possible:
0 = IDLE
1 = BASIC_JUMP (space/overworld)
2 = LONG_JUMP (hyperspace)
3 = TELEPORT
4 = BEACON_JUMP (jump ship to a beacon)
5 = HYPERSPACE (jump to/from Hyperspace)
6 = GATE_JUMP (jump via a jumpgate)
What do you mean by "switch off all the cores before jumping"?
The script assumes you've an ICBM alarm or a redstone light above the computer to warn players on board. It does a 1s on/off on it before doing the actual jump. Is that what you mean?
The wiki doesn't describe it because we need to change the API, for multiple reasons:
1- Most of it dates from the original Industrial Aerospace mod which was way more complicated.
2- We can't jump in diagonals, we're currently constrains to single axis movement.
3- There's a couple 'security' flaw in the current ship controller API.
Come visit us on WorldWarMinecraft series, now with space fights! Modpack is available here. Only 1GB RAM required! Lots of fun and no lag!
Visit our Voltz PvP/raid server at pvp.worldwarminecraft.net:25555 .
Join the PvE survival challenge on FunSquareGames Arcania craft.
Whenever you decide to rewrite the API, could you add a function that takes a set of coordinates and then attempts to jump as far in that direction as it can?
I have written a GUI to work with the current warp controller API. I did use some of the code from the existing program, but the rest was written by me.
Code:
local LogFile = "DebugLog"
local WarpControllerBase = "warpdriveShipController_"
local Data = {
Name = "TestShip1",
Mode = "Normal Jump",
Dimensions = {Front = 8, Back = 8, Left = 8, Right = 8, Up = 3, Down = 6},
JumpData = {RealDistance = 0, Direction = "Forward", Distance = 50, Gate = " ", NavTbl = {}}
}
local Refrences = {
["Up"] = 1,
["Down"] = 2,
["Forward"] = 0,
["Back"] = 180,
["Left"] = 90,
["Right"] = 255,
}
local slc = 1
local MinimumDistance = 0
function GetWarpController()
for i=0,500 do
local Periph = peripheral.wrap(WarpControllerBase..i)
if (Periph ~= nil) then
return Periph
end
end
return nil
end
local wc = GetWarpController()
-----------------------------------------------------------------------------------------GUI CODE
function TranlateModes(Mode)
if (Mode == "Off") then
return ("Mode: OFF ")
elseif (Mode == "Normal Jump") then
return ("Mode: Normal Jump ")
elseif (Mode == "Hyperspace Transition") then
return ("Mode: Hyperspace Transition")
elseif (Mode == "Jumpgate") then
return ("Mode: Jumpgate ")
end
end
function TranslateText(Text, Size)
local Len = string.len(Text)
for i=1,(math.floor(Size-Len)) do
Text = Text.." "
end
return Text
end
function SetDims()
term.setCursorPos(1,1)
term.setTextColor(colors.white)
term.setBackgroundColor(colors.black)
term.clear()
-----
term.write("Set Dimensions: ")
print(" ")
term.write(" Front ("..Data.Dimensions.Front..") > ")
Data.Dimensions.Front = tonumber(read()) or Data.Dimensions.Front
term.write(" Back ("..Data.Dimensions.Back..") > ")
Data.Dimensions.Back = tonumber(read()) or Data.Dimensions.Back
term.write(" Right ("..Data.Dimensions.Right..") > ")
Data.Dimensions.Right = tonumber(read()) or Data.Dimensions.Right
term.write(" Left ("..Data.Dimensions.Left..") > ")
Data.Dimensions.Left = tonumber(read()) or Data.Dimensions.Left
term.write(" Up ("..Data.Dimensions.Up..") > ")
Data.Dimensions.Up = tonumber(read()) or Data.Dimensions.Up
term.write(" Down ("..Data.Dimensions.Down..") > ")
Data.Dimensions.Down = tonumber(read()) or Data.Dimensions.Down
-----
term.write("Dimensions Set")
end
function SetDist()
term.setCursorPos(1,1)
term.setTextColor(colors.white)
term.setBackgroundColor(colors.black)
term.clear()
------------------------------------Distance Set
if (Data.Mode == "Normal Jump") or (Data.Mode == "Hyperspace Transition") then
Data.JumpData.Distance = 0
CalcRealDistance()
MaximumDistance = MinimumDistance + (128 * (wc.isInHyperspace() and 100 or 1))
-----
term.write("---- Set Jump Distance ----")
print(" ")
if IsInHyper then
term.write("Distance * 100 (min "..MinimumDistance..", max "..MaximumDistance.."): ")
else
term.write("Distance (min "..MinimumDistance..", max "..MaximumDistance.."): ")
end
----
sleep(0.3)
local NDistance = tonumber(read())
if NDistance == nil then Data.JumpData.Distance = 1 end
if NDistance < MinimumDistance or Data.JumpData.Distance > MaximumDistance then
Data.JumpData.Distance = 1
print("Wrong distance. Try again.")
sleep(1)
CalcRealDistance()
else
Data.JumpData.Distance = NDistance
if not wc.isInHyperspace() then
Data.JumpData.Distance = Data.JumpData.Distance - Data.JumpData.RealDistance
end
CalcRealDistance()
end
elseif (Data.Mode == "Jumpgate") then
-------------------------------Gate Set
term.write("Enter Jumpgate name: ")
local name = tostring(read())
if (name ~= nil) then
Data.JumpData.Gate = name
end
end
end
function DistButtonDisp()
if (Data.Mode == "Normal Jump") or (Data.Mode == "Hyperspace Transition") then
return {Text = "[ Set Jump Distance ]", TextCol = colors.black, BackCol = colors.green}
elseif (Data.Mode == "Jumpgate") then
return {Text = "[ Set Gate Name ]", TextCol = colors.black, BackCol = colors.green}
else
return {Text = "[ Set Jump Distance ]", TextCol = colors.black, BackCol = colors.green}
end
end
function DistLabelDisp()
if (Data.Mode == "Normal Jump") or (Data.Mode == "Hyperspace Transition") then
return {Text = "Dir: "..TranslateText(Data.JumpData.Direction, 8).." Dist: "..TranslateText(Data.JumpData.RealDistance, 5), TextCol = colors.black, BackCol = colors.blue}
elseif (Data.Mode == "Jumpgate") then
return {Text = "Gate: "..TranslateText(Data.JumpData.Gate, 20), TextCol = colors.black, BackCol = colors.blue}
else
return {Text = "Dir: "..TranslateText(Data.JumpData.Direction, 8).." Dist: "..TranslateText(Data.JumpData.RealDistance, 5), TextCol = colors.black, BackCol = colors.blue}
end
end
function PwrLabelFunc()
local Cost = wc.getEnergyRequired(Data.JumpData.Distance)
Cost = math.ceil(Cost/1000)
if (wc.getEnergyLevel() >= Cost) then
return {Text = "EnergyReq: "..TranslateText(Cost.."k EU", 10), TextCol = colors.black, BackCol = colors.blue}
else
return {Text = "EnergyReq: "..TranslateText(Cost.."k EU", 10), TextCol = colors.black, BackCol = colors.red}
end
end
function ProgressNumber(StartNum, EndNum, MaxIncr)
if (StartNum > EndNum) then
if (StartNum - MaxIncr < EndNum) then return EndNum end
return StartNum - MaxIncr
else
if (StartNum + MaxIncr > EndNum) then return EndNum end
return StartNum + MaxIncr
end
end
local Screens = {
---Main Menu
[1] = {
{
{Type = "TextLabel", DispFunc = function() return {Text = " Helm Control Program Created By Spector19 ", TextCol = colors.black, BackCol = colors.orange} end, Position = {1,0}},
Settings = {Offset = {1,1}, BorderBColor = colors.yellow, BorderTColor = colors.black, BorderText = " ",},
---Warp Commands Menu
{Type = "TextLabel", DispFunc = function() return {Text = " Functions ", TextCol = colors.black, BackCol = colors.yellow} end, Position = {1,1}},
{Type = "Button", DispFunc = function() return {Text = "[ Set WarpCore Mode ]", TextCol = colors.black, BackCol = colors.green} end, Function = function() slc = 2 end, Position = {1,2}, Active = true},
{Type = "Button", DispFunc = function() return {Text = "[ Set Jump Direction]", TextCol = colors.black, BackCol = colors.green} end, Function = function() slc = 3 end, Position = {1,3}, Active = true},
{Type = "Button", DispFunc = DistButtonDisp, Function = function() SetDist() end, Position = {1,4}, Active = true},
{Type = "Button", DispFunc = function() return {Text = "[ Set Dimensions ]", TextCol = colors.black, BackCol = colors.green} end, Function = function() SetDims() end, Position = {1,5}, Active = true},
{Type = "Button", DispFunc = function() return {Text = "[ Jump ]", TextCol = colors.black, BackCol = colors.green} end, Function = function() Jump(Data, wc) end, Position = {1,6}, Active = true},
},
{
Settings = {Offset = {1,10}, BorderBColor = colors.yellow, BorderTColor = colors.black, BorderText = " ",},
---Display
{Type = "TextLabel", DispFunc = function() return {Text = " Core Data ", TextCol = colors.black, BackCol = colors.yellow} end, Position = {1,1}},
{Type = "TextLabel", DispFunc = function() return {Text = TranlateModes(Data.Mode), TextCol = colors.black, BackCol = colors.blue} end, Position = {1,2}},
{Type = "TextLabel", DispFunc = function() return {Text = " Warp Field Dimensions ", TextCol = colors.black, BackCol = colors.blue} end, Position = {1,3}},
{Type = "TextLabel", DispFunc = function() return {Text = "DimFront: "..TranslateText(Data.Dimensions.Front, 3).." DimBack: "..TranslateText(Data.Dimensions.Back, 3), TextCol = colors.black, BackCol = colors.blue} end, Position = {1,4}},
{Type = "TextLabel", DispFunc = function() return {Text = "DimLeft: "..TranslateText(Data.Dimensions.Left, 3).." DimRight: "..TranslateText(Data.Dimensions.Right, 3), TextCol = colors.black, BackCol = colors.blue} end, Position = {1,5}},
{Type = "TextLabel", DispFunc = function() return {Text = "DimUp : "..TranslateText(Data.Dimensions.Up, 3).." DimDown: "..TranslateText(Data.Dimensions.Down, 3), TextCol = colors.black, BackCol = colors.blue} end, Position = {1,6}},
{Type = "TextLabel", DispFunc = function() return {Text = " Jump Data ", TextCol = colors.black, BackCol = colors.blue} end, Position = {1,7}},
{Type = "TextLabel", DispFunc = DistLabelDisp, Position = {1,8}},
{Type = "TextLabel", DispFunc = PwrLabelFunc, Position = {29,2}},
},
},
---WarpCore Mode
[2] = {
{
Settings = {Offset = {1,0}, BorderBColor = colors.yellow, BorderTColor = colors.black, BorderText = " ",},
---Mode Menu
{Type = "TextLabel", DispFunc = function() return {Text = " Select Mode ", TextCol = colors.black, BackCol = colors.yellow} end, Position = {1,1}},
{Type = "Button", DispFunc = function() return {Text = "[ OFF ]", TextCol = colors.black, BackCol = colors.green} end, Function = function() Data.Mode = "Off" slc = 1 end, Position = {1,2}, Active = true},
{Type = "Button", DispFunc = function() return {Text = "[ Normal Jump ]", TextCol = colors.black, BackCol = colors.green} end, Function = function() Data.Mode = "Normal Jump" slc = 1 end, Position = {1,3}, Active = true},
{Type = "Button", DispFunc = function() return {Text = "[ Hyperspace Trans ]", TextCol = colors.black, BackCol = colors.green} end, Function = function() Data.Mode = "Hyperspace Transition" slc = 1 end, Position = {1,4}, Active = true},
{Type = "Button", DispFunc = function() return {Text = "[ Jumpgate ]", TextCol = colors.black, BackCol = colors.green} end, Function = function() Data.Mode = "Jumpgate" slc = 1 end, Position = {1,5}, Active = true},
{Type = "Button", DispFunc = function() return {Text = "[ < Back > ]", TextCol = colors.black, BackCol = colors.green} end, Function = function() slc = 1 end, Position = {1,6}, Active = true},
},
},
---Jump Direction
[3] = {
{
Settings = {Offset = {1,0}, BorderBColor = colors.yellow, BorderTColor = colors.black, BorderText = " ",},
---Mode Menu
{Type = "TextLabel", DispFunc = function() return {Text = " Select Direction ", TextCol = colors.black, BackCol = colors.yellow} end, Position = {1,1}},
{Type = "Button", DispFunc = function() return {Text = "[ Forward ]", TextCol = colors.black, BackCol = colors.green} end, Function = function() Data.JumpData.Direction = "Forward" slc = 1 end, Position = {1,2}, Active = true},
{Type = "Button", DispFunc = function() return {Text = "[ Backward ]", TextCol = colors.black, BackCol = colors.green} end, Function = function() Data.JumpData.Direction = "Backward" slc = 1 end, Position = {1,3}, Active = true},
{Type = "Button", DispFunc = function() return {Text = "[ Left ]", TextCol = colors.black, BackCol = colors.green} end, Function = function() Data.JumpData.Direction = "Left" slc = 1 end, Position = {1,4}, Active = true},
{Type = "Button", DispFunc = function() return {Text = "[ Right ]", TextCol = colors.black, BackCol = colors.green} end, Function = function() Data.JumpData.Direction = "Right" slc = 1 end, Position = {1,5}, Active = true},
{Type = "Button", DispFunc = function() return {Text = "[ Up ]", TextCol = colors.black, BackCol = colors.green} end, Function = function() Data.JumpData.Direction = "Up" slc = 1 end, Position = {1,6}, Active = true},
{Type = "Button", DispFunc = function() return {Text = "[ Down ]", TextCol = colors.black, BackCol = colors.green} end, Function = function() Data.JumpData.Direction = "Down" slc = 1 end, Position = {1,7}, Active = true},
{Type = "Button", DispFunc = function() return {Text = "[ < Back > ]", TextCol = colors.black, BackCol = colors.green} end, Function = function() slc = 1 end, Position = {1,8}, Active = true},
},
},
}
function DrawScreen()
term.setBackgroundColor(colors.black)
term.clear()
local Screen = Screens[slc]
for _,Menu in pairs(Screen) do
for i,p in pairs(Menu) do
if (p.Type ~= nil) then
if (p.Type == "TextLabel") then
--TextLabel
local DispInfo = p.DispFunc()
term.setCursorPos((p.Position[1]-1)+Menu.Settings.Offset[1], p.Position[2]+Menu.Settings.Offset[2])
term.setTextColor(Menu.Settings.BorderTColor)
term.setBackgroundColor(Menu.Settings.BorderBColor)
print(Menu.Settings.BorderText)
term.setCursorPos((p.Position[1]+string.len(DispInfo.Text))+Menu.Settings.Offset[1], p.Position[2]+Menu.Settings.Offset[2])
term.setTextColor(Menu.Settings.BorderTColor)
term.setBackgroundColor(Menu.Settings.BorderBColor)
print(Menu.Settings.BorderText)
---
term.setCursorPos(p.Position[1]+Menu.Settings.Offset[1], p.Position[2]+Menu.Settings.Offset[2])
term.setTextColor(DispInfo.TextCol)
term.setBackgroundColor(DispInfo.BackCol)
print(DispInfo.Text)
elseif (p.Type == "Button") then
----Button
local DispInfo = p.DispFunc()
term.setCursorPos((p.Position[1]-1)+Menu.Settings.Offset[1], p.Position[2]+Menu.Settings.Offset[2])
term.setTextColor(Menu.Settings.BorderTColor)
term.setBackgroundColor(Menu.Settings.BorderBColor)
print(Menu.Settings.BorderText)
term.setCursorPos((p.Position[1]+string.len(DispInfo.Text))+Menu.Settings.Offset[1], p.Position[2]+Menu.Settings.Offset[2])
term.setTextColor(Menu.Settings.BorderTColor)
term.setBackgroundColor(Menu.Settings.BorderBColor)
print(Menu.Settings.BorderText)
---
term.setCursorPos(p.Position[1]+Menu.Settings.Offset[1], p.Position[2]+Menu.Settings.Offset[2])
term.setTextColor(DispInfo.TextCol)
term.setBackgroundColor(DispInfo.BackCol)
print(DispInfo.Text)
end
end
end
end
end
function CheckClick(x,y)
local Screen = Screens[slc]
for _,Menu in pairs(Screen) do
for i,p in pairs(Menu) do
if (p.Type ~= nil) then
if (p.Type == "Button") then
---Button
local DispInfo = p.DispFunc()
if (y == p.Position[2]+Menu.Settings.Offset[2]) and (x >= p.Position[1]+Menu.Settings.Offset[1]) and (x <= (p.Position[1] + (string.len(DispInfo.Text)-1))+Menu.Settings.Offset[1]) then
p.Function()
end
---
end
end
end
end
end
function ScreenClicks()
local event, button, x, y = os.pullEvent("mouse_click")
CheckClick(x,y)
end
-----------------------------------------------------------------------------------------
function SaveData()
local file = fs.open("HelmData", "w")
local str = textutils.serialize(Data)
if str~="{}" then
file.writeLine(str)
end
file.close()
end
function ReadData()
local file = fs.open("HelmData", "r")
Data = textutils.unserialize(file.readAll())
file.close()
end
if (fs.exists("HelmData")) then
ReadData()
else
SaveData()
end
function dlog(data)
file = fs.open(LogFile,fs.exists(LogFile) and "a" or "w")
file.writeLine(data)
file.close()
end
function CalcRealDistance()
if wc.isInHyperspace() then
Data.JumpData.RealDistance = Data.JumpData.Distance * 100
MinimumDistance = 1
else
if Data.JumpData.Direction == "Up" or Data.JumpData.Direction == "Down" then
MinimumDistance = Data.Dimensions.Up + Data.Dimensions.Down
Data.JumpData.RealDistance = Data.JumpData.Distance + MinimumDistance
elseif Data.JumpData.Direction == "Backward" or Data.JumpData.Direction == "Forward" then
MinimumDistance = Data.Dimensions.Front + Data.Dimensions.Back
Data.JumpData.RealDistance = Data.JumpData.Distance + MinimumDistance
elseif Data.JumpData.Direction == "Right" or Data.JumpData.Direction == "Left" then
MinimumDistance = Data.Dimensions.Left + Data.Dimensions.Right
Data.JumpData.RealDistance = Data.JumpData.Distance + MinimumDistance
end
MinimumDistance = MinimumDistance + 1
end
end
function UpdateCore(tbl, wc)
wc.coreFrequency(tbl.Name)
wc.dim_positive(tbl.Dimensions.Front, tbl.Dimensions.Right, tbl.Dimensions.Up)
wc.dim_negative(tbl.Dimensions.Back, tbl.Dimensions.Left, tbl.Dimensions.Down)
wc.direction(Refrences[tbl.JumpData.Direction])
wc.distance(tbl.JumpData.Distance)
wc.targetJumpgate(tbl.JumpData.Gate)
if (tbl.Mode == "Normal Jump") then
if (wc.isInHyperspace()) then
wc.mode(2)
else
wc.mode(1)
end
elseif (tbl.Mode == "Off") then
wc.mode(0)
elseif (tbl.Mode == "Hyperspace Transition") then
wc.mode(5)
elseif (tbl.Mode == "Jumpgate") then
wc.mode(6)
end
end
function Jump(tbl, wc)
if (tbl.Mode ~= "Off") then
wc.jump()
end
end
------------------------------------- Main Loop
while true do
UpdateCore(Data, wc)
SaveData()
DrawScreen()
ScreenClicks()
end
Sounds like a good idea, we'll see to add that in.
Come visit us on WorldWarMinecraft series, now with space fights! Modpack is available here. Only 1GB RAM required! Lots of fun and no lag!
Visit our Voltz PvP/raid server at pvp.worldwarminecraft.net:25555 .
Join the PvE survival challenge on FunSquareGames Arcania craft.
Can you please add turning? I really don't like the fact that my ship can't turn to fight. Please make it in degrees.
I don't think this is a good idea. Correct me if I am wrong, but I think this has been discussed in the thread (and used in an earlier version of the mod, too) and dismissed for several reasons:
1) more lag, especially with bigger ships;
2) the amount of work to calculate/implement the rotation of all possible blocks.
How about you instead arrange your lasers so that they collectively cover all the 360 degrees around the ship?
The code in my earlier post was butchered by the fourm, most of the spaces inside the srings were removed. Code Uploaded to pastebin:
http://pastebin.com/SKXUYcFe
So this mod is updated n such? I thought it went dead. I'm mainly wondering fi there is a 1.7.10 version of this mod available? If so where at?
Yes, it has been updated. You can fond the ALPHA here: http://minecraft.curseforge.com/mc-mods/233565-warpdrive
1| if (signature = true) {
2| document.write("Wassup?");
3| }
4| else {
5| document.write("404: signature not found");
6| }
How do you expect to turn in degrees in a cubic world which is, by nature, aligned to 90 deg steps?
Come visit us on WorldWarMinecraft series, now with space fights! Modpack is available here. Only 1GB RAM required! Lots of fun and no lag!
Visit our Voltz PvP/raid server at pvp.worldwarminecraft.net:25555 .
Join the PvE survival challenge on FunSquareGames Arcania craft.
EDIT: I think this may have something to do with the air generators, because when I broke them the air did not stop generating.
I am getting an error when attempting to jump. It plays the sound and applies the nausea effect, but does not actually move the ship. I only have ic2/computercraft/warpdrive blocks on the ship, and it worked in the overworld, but not now that I am in space. The error is as follows:
8:55:32] [Server thread/INFO] [WarpDrive]: Profiling 'EntityJump.getRealShipVolume_checkBedrock': 0.95 ms, total: 0.95 ms
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: java.lang.ArrayIndexOutOfBoundsException: 1295
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cr0s.warpdrive.EntityJump.saveShip(EntityJump.java:728)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cr0s.warpdrive.EntityJump.prepareToJump(EntityJump.java:515)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cr0s.warpdrive.EntityJump.func_70071_h_(EntityJump.java:181)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.world.World.func_72866_a(World.java:2070)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.world.WorldServer.func_72866_a(WorldServer.java:648)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.world.World.func_72870_g(World.java:2034)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at WorldServerOF.func_72870_g(WorldServerOF.java:347)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.world.World.func_72939_s(World.java:1887)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:489)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:636)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:186)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427)
[18:55:32] [Server thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685)
[18:55:32] [Server thread/INFO] [WarpDrive]: Profiling 'EntityJump.unforceChunks': 1.256 ms, total: 1.256 ms
[18:55:32] [Server thread/INFO] [WarpDrive]: Profiling 'EntityJump.saveShip': 6.615 ms, total: 7.872 ms
[18:55:32] [Server thread/INFO] [WarpDrive]: Profiling 'EntityJump.prepareToJump': 2.966 ms, total: 12.876 ms
[18:55:32] [Client thread/INFO]: [CHAT] [EliShip1] Jumping FRONT by 60 blocks
This is fixed in upcoming 1.3.5 :).
Come visit us on WorldWarMinecraft series, now with space fights! Modpack is available here. Only 1GB RAM required! Lots of fun and no lag!
Visit our Voltz PvP/raid server at pvp.worldwarminecraft.net:25555 .
Join the PvE survival challenge on FunSquareGames Arcania craft.
Version 1.3.5 has been pushed on CurseForge http://minecraft.curseforge.com/mc-mods/233565-warpdrive/files/2253848
This include fixes for dedicated server support, cloaking tier 1, IC2 reactor monitor and the usual bucket of bug fixes and optimizations.
There's no world generation in space, it's still a wip, but at least it won't crash you now :).
Please note that configuration was largely updated, it's in a subfolder, entries are bit more explicit with finer control on weapon effects.
Come visit us on WorldWarMinecraft series, now with space fights! Modpack is available here. Only 1GB RAM required! Lots of fun and no lag!
Visit our Voltz PvP/raid server at pvp.worldwarminecraft.net:25555 .
Join the PvE survival challenge on FunSquareGames Arcania craft.
I meant 90 deg steps.
The update has not fixed my issue. The ship still refuses to jump, and the air will not de-spawn.
EDIT: After some testing, i found that is definitely the air generators, or at least the air, that is preventing ships from jumping. I tried this on several different worlds and ships, all with the same results.