'Tis me again, lads!
Seeing as how I don't know a lick of Ruby, and that Apollo does not have functioning doors (doors are present, but you can't open/close them), I figured a good starting task, would be to add functioning doors.
The thing is, err, I've not got much idea as to what I'm doing.
What I've done so far, is I've copied the mining plugin to a new folder named "aaa_doors". I've now edited the pickaxe.rb script to become the following:
Code:
require 'java'
java_import 'org.apollo.game.model.Animation'
DOORS = {}
DOOR_IDS = []
class Door
attr_reader :id, :pulses
def initialize(id, pulses)
@id = id
@pulses = pulses
end
end
def append_door(door)
DOORS[door.id] = door
DOOR_IDS << door.id
end;
append_door(Door.new(3))
append_door(Door.new(4))
append_door(Door.new(22))
append_door(Door.new(24))
append_door(Door.new(59))
append_door(Door.new(71))
append_door(Door.new(72))
append_door(Door.new(73))
append_door(Door.new(74))
append_door(Door.new(77))
append_door(Door.new(78))
append_door(Door.new(79))
append_door(Door.new(80))
append_door(Door.new(81))
append_door(Door.new(82))
append_door(Door.new(92))
append_door(Door.new(93))
append_door(Door.new(99))
append_door(Door.new(102))
append_door(Door.new(131))
append_door(Door.new(134))
append_door(Door.new(135))
append_door(Door.new(136))
append_door(Door.new(779))
append_door(Door.new(1504))
append_door(Door.new(1505))
append_door(Door.new(1506))
append_door(Door.new(1507))
append_door(Door.new(1508))
append_door(Door.new(1511))
append_door(Door.new(1512))
append_door(Door.new(1513))
append_door(Door.new(1514))
append_door(Door.new(1515))
append_door(Door.new(1516))
append_door(Door.new(1517))
append_door(Door.new(1519))
append_door(Door.new(1520))
append_door(Door.new(1530))
append_door(Door.new(1531))
append_door(Door.new(1533))
append_door(Door.new(1534))
append_door(Door.new(1536))
append_door(Door.new(1537))
append_door(Door.new(1539))
append_door(Door.new(1540))
append_door(Door.new(1542))
append_door(Door.new(1543))
append_door(Door.new(1544))
append_door(Door.new(1545))
append_door(Door.new(1573))
append_door(Door.new(1574))
append_door(Door.new(1575))
append_door(Door.new(1576))
append_door(Door.new(1591))
append_door(Door.new(1594))
append_door(Door.new(1595))
append_door(Door.new(1804))
append_door(Door.new(1805))
append_door(Door.new(1967))
append_door(Door.new(1968))
append_door(Door.new(1991))
append_door(Door.new(2000))
append_door(Door.new(2002))
append_door(Door.new(2025))
append_door(Door.new(2032))
append_door(Door.new(2033))
append_door(Door.new(2034))
append_door(Door.new(2035))
append_door(Door.new(2036))
append_door(Door.new(2037))
append_door(Door.new(2048))
append_door(Door.new(2049))
append_door(Door.new(2054))
append_door(Door.new(2069))
append_door(Door.new(2112))
append_door(Door.new(2184))
append_door(Door.new(2188))
append_door(Door.new(2189))
append_door(Door.new(2192))
append_door(Door.new(2193))
append_door(Door.new(2266))
append_door(Door.new(2267))
append_door(Door.new(2309))
append_door(Door.new(2338))
append_door(Door.new(2397))
append_door(Door.new(2398))
append_door(Door.new(2399))
append_door(Door.new(2406))
append_door(Door.new(2416))
append_door(Door.new(2427))
append_door(Door.new(2428))
append_door(Door.new(2429))
append_door(Door.new(2430))
append_door(Door.new(2431))
append_door(Door.new(2520))
append_door(Door.new(2521))
append_door(Door.new(2526))
append_door(Door.new(2527))
append_door(Door.new(2528))
append_door(Door.new(2529))
append_door(Door.new(2534))
append_door(Door.new(2537))
append_door(Door.new(2546))
append_door(Door.new(2547))
append_door(Door.new(2548))
append_door(Door.new(2549))
append_door(Door.new(2550))
append_door(Door.new(2551))
append_door(Door.new(2534))
append_door(Door.new(2535))
append_door(Door.new(2536))
append_door(Door.new(2537))
append_door(Door.new(2538))
append_door(Door.new(2539))
append_door(Door.new(2595))
append_door(Door.new(2621))
append_door(Door.new(2622))
append_door(Door.new(2624))
append_door(Door.new(2625))
append_door(Door.new(2626))
append_door(Door.new(2627))
append_door(Door.new(2628))
append_door(Door.new(2631))
append_door(Door.new(2705))
append_door(Door.new(2706))
append_door(Door.new(2712))
append_door(Door.new(2861))
append_door(Door.new(2862))
append_door(Door.new(2863))
append_door(Door.new(2997))
append_door(Door.new(2998))
append_door(Door.new(3014))
append_door(Door.new(3017))
append_door(Door.new(3018))
append_door(Door.new(3019))
append_door(Door.new(3024))
append_door(Door.new(3025))
append_door(Door.new(3026))
append_door(Door.new(3027))
append_door(Door.new(3220))
append_door(Door.new(3221))
append_door(Door.new(3270))
append_door(Door.new(3271))
append_door(Door.new(3333))
append_door(Door.new(3334))
append_door(Door.new(3335))
append_door(Door.new(3336))
append_door(Door.new(3743))
append_door(Door.new(3745))
append_door(Door.new(3746))
append_door(Door.new(3747))
append_door(Door.new(3776))
append_door(Door.new(3778))
append_door(Door.new(3810))
append_door(Door.new(4148))
append_door(Door.new(4165))
append_door(Door.new(4166))
append_door(Door.new(4247))
append_door(Door.new(4248))
append_door(Door.new(4250))
append_door(Door.new(4251))
append_door(Door.new(4423))
append_door(Door.new(4424))
append_door(Door.new(4425))
append_door(Door.new(4426))
append_door(Door.new(4427))
append_door(Door.new(4428))
append_door(Door.new(4429))
append_door(Door.new(4430))
append_door(Door.new(4465))
append_door(Door.new(4466))
append_door(Door.new(4467))
append_door(Door.new(4468))
append_door(Door.new(4487))
append_door(Door.new(4490))
append_door(Door.new(4491))
append_door(Door.new(4492))
No, that's not all of the doors. Why the hell are there so many different doors!?
*Achem*
The thing is, I've got no clue what I'm doing. What would I do with the above script, supposing it is sound? Should I even have a script which defines each door base object? What would be the proper way to go about adding door functionality, keeping all the code as a plugin (no core edits)?
Also, the append_door(Door.New()) mess is a pain in the ass. Surely a loop, that cycles through a text list, would be better? Thing is, I can't find any sort of text-file-list functionality for Ruby. In Pascal, I'd do something like the following:
Code:
var
ListOfDoorIDs: TStringList;
i: integer;
begin
ListOfDoorIDs := TStringList.Create();
ListOfDoorIDs.LoadFromFile(GetCurrentDir+'\ListOfDoorIds.txt');
for i := 0 to ListOfDoorIDs.Count() - 1 do begin
append_door(Door.new(ListOfDoorIds[i]));
end;
end;
Which, as you can see, is a hell of a lot easier to do. Does Ruby have anything like Pascal's TStringList? Google came up with 3rd party libraries, but I've got no clue how to implement 'em; I'm a novice Pascal scripter, not a JVM professional.