Перейти к содержимому

NEO

Пользователи
  • Публикации

    1 436
  • Зарегистрирован

  • Посещение

  • Победитель дней

    78

Сообщения, опубликованные пользователем NEO


  1. Какие именно участки кода требуют рефакторинга?

    Там у тебя есть участки кода которые исполняются не в функции, очень не удобно, хотя бы сгруппировать их.

     

    function panel:new(x,path,wP)
      local obj={X = x, Path =path, tFiles={}, tSize={}, CurLine=1, Shift=1, wPan=wP}
      setmetatable(obj,self)
      self.__index=self
      return obj
    end
     
    Left =panel:new(1,'',wPanP)
    Rght =panel:new(Left.wPan+1,shell.getWorkingDirectory():sub(1,-2),wPanA)
     
    Active =Rght
    
     
    Вот пример, там таких участков много.
    Путает, читаешь код, ага тут функции, а между ними тихо прячется код которые исполняется при инициализации функций, лучше создать функцию init и main, в init засунуть код инициализации, а в main уже главный код - обработка клавиш и тд.
    Я хоnел на днях модификацию сделать, провозился для того что бы собрать весь код в одного места, так как ~600 строк и прыгать с начала в конец и обратно не очень удобно.

  2. В новой версии МС 1.6 добавлено:

    - нормальная псевдографика;

    - по Alt+Enter теперь можно свернуть коммандер, что бы посмотреть, что под ним написано;

    - новые огрехи, взамен обнаруженных старых.

    Надо бы отрефакторить код.


  3. Глобальные исправлю. А зачем отступы делать? Разве в ифах и циклах.

    Отступ используется для того что выделить логические блоки они же и блоки видимости переменных - do end, а это циклы, условия, функции. В других языках  - это {}

    • Нравится 2

  4. Не понял, как пользоваться. В гугле очень туманные ответы на этот вопрос на зарубежном говоре. Если можно привязать функцию, как ей передать параметры от события? или они сами передаются? и отсеивать в самой функции эти параметры знаками "_" ?

    Они передаются в функцию.

    • Нравится 1

  5.  

    Добрый день игроки.

     

    Я хотел бы узнать, как опытные игроки проводят эксперименты по определению какой кусок кода работает лучше.

     

    А ещё хотел бы узнать, какой оператор будет работать быстрее: > или >=

    Например:

    y = x>13 and x<17

    и

    y = x>=14 and x<=16

    А может ещё быстрее работает оператор == ?

    Например:

    y = x==14 or y==15 or y==16

    Тут надо внедрятся в машинный код.


  6. Предисловие

     

    Для начала мы разберёмся зачем библиотека?

     

    Библиоте́ка (от англ. library) в программировании — сборник подпрограмм или объектов, используемых для разработки программного обеспечения (ПО).

     

    Перед тем как писать свою библиотеку определитесь в её необходимости, но перед этим используйте поиск по форуму, возможно библиотека реализующая нужные алгоритмы уже существует.

    Если такой библиотеки вы не нашли и определились в её необходимости - тогда приступайте к её реализации.

     

    Создание библиотеки

     

    Для правильного создания библиотеки вам потребуется создать файл с расширением .lua, если файл будет не найден, функция require ищет файл в определённых каталогах:

     

    (1)

    ./

    ./lib/

    ./usr/lib/

    ./home/lib/

     

    Ваша библиотека должна обязательно выглядеть так: http://pastebin.com/q342F8y6.

     

    Для инициализации вашей библиотеки нужно использовать функцию require(имя вашей библиотеки без расширения).

    Для примера возьмем имя "MyFirstLib".

    local lib = require('MyFirstLib')
    

    Каким образом работает require?

    •    require(имя вашей библиотеки без расширения) обходит по каталогам (1) в поисках файла, с именем который вы передали через аргументы, расширение ".lua" не требуется писать.
    •    Если файл существует он загружаться с помощью load, поскольку load создаёт функцию, в конце библиотеки нужно возвращать таблицу с полезными функциями. 
    •    Библиотека сохраняется в package.loaded.имяБиблиотеки, то есть, если изменить исходники библиотеки, изменения не вступят в силу до перезагрузки компьютера, либо до принудительного присвоения package.loaded.имяБиблиотеки = nil
    •    Если вы не будете возвращать таблицу, require возвращает - true.

     

    На этом всё, я думаю вам удалось создать правильную и работающую библиотеку, а если нет - пиши сюда, вам помогут.

     

    • Нравится 5

  7. Паника! Как вернуть метод?  :unsure:

    Смысл библиотеки в том что бы содержать полезные функции, а не полноценную программу каковым является ваша "библиотека".

     

    Библиотека имеет вид:

    Файл с именем name.lua

     

    И содержимым:

    local lib = {}
    
    function lib.test()
         print('Hello World')
    end
    
    return lib
    

    Когда вы вызываете библиотеку require('name'), вам возвращается таблица lib или boolean значение которое сигнализирует о статусе загрузки библиотеки.

    • Нравится 1

  8. ...

    Просто человек ошибся местом троллинга, сидит в инзиве и думает что никто не знает что он в онлайне.

    http://i.imgur.com/oSfWmqv.png

     

    http://computercraft.ru/index.php?app=forums&module=extras&section=stats&do=leaders

     

    P.S, Да и чего ты с ним нянчишься, ты сам знаешь что делать.  :smile9:


  9. Да.... видимо никто не подумал что ит и магик абсолютно разные сборки, магик намного мощнее и в плане производительности, я читал выше посты и такое чувство что вы просто сравниваете названия, не моды, не количество контента которые ваш компьютер должен обработать, а просто ит и магик вот эти буквы, а то что таум добавляет кучу нового рендера не это же фигня Алекс царек, да... По смеялся, не позорьте себя и форум.

    • Нравится 1

  10.  

    ...


    Всё, всё с тобой понятно. Можешь больше ничего не писать, я пруфы со своей стороны дал, ты нет, значит жалобы нет, кроме пустых слов, не имеющих никакого подтверждения.

    LeshaInc сказал(а) 25 Фев 2016 - 21:07:snapback.png
    Многие винят мод нео (в том числе и я, не могут же любимые таумкрафтки и другие магомоды лагать, если раньше сто раз играл на сборках и по тяжелее под 30--40 фпс)

    Многие - это 3 гнома. :D
    3 гнома меня всегда будут во всём винить, мне пофигу как и остальным.

     


    Предлагаю так, мы с Алексом завтра всё проверим, и скинем пруфы что это не мой мод.
    И не будет НЕОваров которые ты устроить пытался, и не говори что не так, есть еще чат где ты меня поносил, извините что грубо выразился, но мод пиши, а тестить нельзя?
    Всё сеанс связи закончен, завтра будут пруфы, если конечно у Алекса появится стабильный интернет.
    Больше не отвечаю, срач - срачем, ничего нового не увижу.

     

    P.S
    Твои минусы как раз подтверждают моё мнение, причина не в моде, а в твоём отношение ко мне, можешь не выкручиваться.


  11. ...

    http://imgur.com/a/mZpxz

     

    Твоя очередь, видюха, последняя версия дров 2007 годом датируется. Скинь мне пруф что именно мой мод, а не солянка из кучи где мой мод по сравнению с другими очень компактный на данный момент. 


  12. У меня всё хорошо.

    Я не против пруфы получить, если нет, тогда не надо словоблудием заниматься.Цифры количества фпс не учитываются.


  13. Со строками equals-обязательно

    Это если строки, а если просто ссылки, то там наследуется код из класса Object, а именно 

    public boolean equals(Object obj) {

    return (this == obj);

    }

     

    Проще и быстрее писать ==, чем вызывать equals.


  14. Координаты места крафта.(на примере крафта ведра)

    1)Ловим эвент:

     

    public class CraftBucket {
        @SubscribeEvent
        public void onCraftBucket(PlayerEvent.ItemCraftedEvent e){
            if(e.crafting.getItem().equals(Items.bucket)){
                System.out.println(e.player.getPlayerCoordinates());
            }
        }
    }
    2)Регистрируем эвент:

     

    @Mod.EventHandler
        public void init(FMLInitializationEvent event) {
            FMLCommonHandler.instance().bus().register(new CraftBucket());
        }
    3) В итоге мы получим координаты игрока во время крафта.

    equals не обязательно, можно просто ==

×
×
  • Создать...