go to wiki
burningrain / planetbot Goto Github PK
View Code? Open in Web Editor NEWLicense: The Unlicense
License: The Unlicense
Задача: перевести main-app со swing на javafx.
Также это означает переход на java 8.
Цели:
Переход будем делать в несколько этапов:
Необходимо сделать каркасный модуль для ui-plugin. Данный модуль является "скелетом, на который будет наращиваться мясо", а именно: модуль содержит логику по отрисовке основных панелек/менюшек/тулбара и добавлению/удалению компонентов на них из ui-plugin-ов.
Как предполагается писать класс ui-plugin-а:
В связи с этим и требуется некий каркас, в ячейки которого декларативно через интерфейсы и аннотации и будут встраиваться ui-plugin-ы.
Необходимо разработать как сам game-ui, так и ui-plugin-api
Воспроизведение:
Наблюдаю:
Для согласования состояний ui-plugin-ов помимо отправки событий возникнут моменты, когда будет необходимо сохранять состояние, которое необходимо передавать между различными ui-plugin-ами. Предполагается решать эту проблему с помощью еще одного модуля (н-р, назовем его SharedState), через который будет происходить чтение/запись некоторых ui-данных.
Требования:
Решение:
Это означает, что решения типа jooq не подходят. Предпочтительна разработка от бизнес-логики, а не базы. Также это означает, что по причине слабой, но зависимости ui-plugin-ов друг от друга (сильную не делаем, чтобы один плагин не вешал другой) между ними может возникать несочетаемость. Это тоже надо учитывать при разработке ui-plugin-а.
Необходимо рассмотреть за и против в плане:
private class UglyHuckRenderer extends BasicRenderer<Planet, String>{
super .....
}
Point2D p = (Point2D)layout.transform(v);
после этого
p=null
и падает
float x = (float)p.getX();
private final Set<Planet> planets;
private final Set<Planet> startPoints;
Связывать не по обжектам а по ид планет в Сете
В парсер необходимо добавить валидацию. Предлагаю сделать в парсере простую валидацию обязательных и необязательных параметров. В случае отсутствия обязательного параметра выкидывать исключение (н-р, MapValidationException, который расположить в map-api).
То есть парсер будет валидировать исключительно корректность формата.
Более сложная валидация, включающая в себя логику и зависимость одних параметров от других (н-р, что на карте "большие базы" должна быть только одна малая планета) будет размещаться в game-core. Проверка корректности галактики будет происходить при попытке создания игры. И в случае некорректности выкидываться исключение.
Такая "размазанность" валидации сделает парсер более тупым, а значит:
Поскольку понимания логических условий прямо сейчас нет, то надо сделать просто проверки обязательных/необязательных параметров, относящихся к формату. Если что, прямо тут и продолжим обсуждение.
Необходимо сделать возможность загрузки карт для бота из популярного формата для описания графов - https://ru.wikipedia.org/wiki/DOT_(%D1%8F%D0%B7%D1%8B%D0%BA) http://www.graphviz.org/Documentation/dotguide.pdf
Возможно, хорошие парсеры и билдеры ужу существуют (https://github.com/shevek/graphviz4j)
http://zvtm.sourceforge.net/zgrviewer/doc/ajapad/dotParser.html
https://github.com/nidi3/graphviz-java
https://mvnrepository.com/open-source/graphviz-libraries
надо поискать
https://wiki.eclipse.org/GEF/GEF4/DOT/User_Guide
http://git.eclipse.org/c/
Необходимо разобраться с интеграционным тестированием в OSGi. Как писать, как запускать, как использовать совместно с Travis.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.