12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- event.load("block_place");
- event.load("block_break");
- event.load("player_move");
- portalids = list.new();
- port_out_locs = map.new();
- open_portals_in = list.new();
- open_portals_out = list.new();
- @wait
- wait();
- if(player.getName(player) == "SirTerence7"){
- //one way portals:
- if(event == "block_place"){
- if(block_type == "minecraft:redstone_torch"){
- new_id = event.addMoveData(block_loc, loc.mod(block_loc,0.5,1,0.5), -1, -1, player);
- list.add(portalids, new_id);
- if(list.getSize(open_portals_out) > 0){
- map.add(port_out_locs, new_id, list.getIndex(open_portals_out, 0));
- list.removeIndex(open_portals_out, 0);
- }else{
- list.add(open_portals_in, new_id);
- }
- goto("wait");
- }
- if(block_type == "minecraft:torch"){
- if(list.getSize(open_portals_in) > 0){
- map.add(port_out_locs, list.getIndex(open_portals_in, 0), block_loc);
- list.removeIndex(open_portals_in, 0);
- }else{
- list.add(open_portals_out, block_loc);
- }
- goto("wait");
- }
- goto("wait");
- }
- if(event == "block_break"){
- goto("wait");
- }
- if(event == "player_move"){
- if(list.contains(portalids,id)){
- motion_array = entity.getMotion(player);
- temp_coords = map.get(port_out_locs, id);
- if(temp_coords != null){
- entity.teleport(player, temp_coords);
- entity.throw(player, motion_array[0], motion_array[1], motion_array[2]);
- }
- }
- goto("wait");
- }
- }
- goto("wait");
- /*
- portalkey = 1;
- //
- if(event == "block_place"){
- if(block_type == "minecraft:redstone_torch"){
- new_id = event.addMoveData(block_loc, loc.mod(block_loc,0.5,1,0.5), -1, -1, player);
- list.add(portalids, new_id);
- map.add(port_idmap, block_loc, new_id);
- map.add(port_locs, portalkey, block_loc);
- msg("dev", new_id);
- portalkey++;
- }
- goto("wait");
- }
- /*if(event == "block_break"){
- temp_id = map.get(port_idmap, block_loc);
- event.removeMoveData(temp_id);
- goto("wait");
- }*//*
- if(event == "player_move" && portalkey > 2){
- motion_array = entity.getMotion(player);
- msg("dev", id);
- temp_key = list.getIndexOf(portalids, id);
- if(temp_key > 0){
- msg("dev", temp_key);
- if(math.round(temp_key/2) == temp_key/2){
- temp_coords = map.get(port_locs, temp_key-1);
- }else{
- temp_coords = map.get(port_locs, temp_key+1);
- }
- msg("dev", temp_coords);
- entity.teleport(player, temp_coords);
- entity.throw(player, motion_array[0], motion_array[1], motion_array[2]);
- }
- goto("wait");
- }
- }*/
|