MCPcopy Index your code
hub / github.com/dozingcat/Vector-Pinball

github.com/dozingcat/Vector-Pinball @v1.16.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.16.0 ↗ · + Follow
969 symbols 2,708 edges 60 files 139 documented · 14%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Vector Pinball

Vector Pinball is a pinball game for Android devices. It is released under version 3 of the GPL; see COPYING for the license text.

The graphics are deliberately simple; currently everything is drawn with lines and circles. The focus is on gameplay and accurate physics. It uses the libgdx Java wrapper for the Box2D physics engine. Thanks to Peter Drescher for the sound effects; see his article on creating them.

The GitHub project page is: github.com/dozingcat/Vector-Pinball/. See devnotes.txt for an overview of the code layout.

There is a very experimental table editor at github.com/dozingcat/Vector-Pinball-Editor/

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Vector Pinball includes the libgdx library by Bad Logic Games. libgdx is used under the terms of Version 2.0 of the Apache License.

Sound, music, & audio code by pdx of Twittering Machine.

How to Translate

Make a new folder in "app/src/main/res" named "values-lang" (with only at least 2 letters), copy-paste the strings.xml file from the "values" folder into it, and start editing it to the language of your choice.

Also make a folder in "fastlane/metadata/android" with a folder named "lang" (with only at least 2 letters), and copy the .txt files from "en_US", and simply overwrite them with the description in your own language. The "title.txt" file is entirely optional if you feel like the title could also be translated.

Download

Extension points exported contracts — how you extend this code

IDrawable (Interface)
Anything that can be drawn, including field elements, balls, and static shapes. [7 implementers]
app/src/main/java/com/dozingcatsoftware/vectorpinball/model/IDrawable.java
AudioPlayer (Interface)
(no doc) [5 implementers]
app/src/main/java/com/dozingcatsoftware/vectorpinball/model/AudioPlayer.java
IFieldRenderer (Interface)
This interface defines methods that draw graphical elements such as lines and circles to display the field. An implement [1 …
app/src/main/java/com/dozingcatsoftware/vectorpinball/model/IFieldRenderer.java
IStringResolver (Interface)
Interface to look up localized strings. Allows Field and delegate classes to generate localized messages without platfor [1 …
app/src/main/java/com/dozingcatsoftware/vectorpinball/model/IStringResolver.java
Delegate (Interface)
(no doc)
app/src/main/java/com/dozingcatsoftware/bouncy/OrientationListener.java

Core symbols most depended-on inside this repo

getFieldElementById
called by 118
app/src/main/java/com/dozingcatsoftware/vectorpinball/model/Field.java
equals
called by 117
app/src/main/java/com/dozingcatsoftware/vectorpinball/fields/Field9Delegate.java
fromRGB
called by 107
app/src/main/java/com/dozingcatsoftware/vectorpinball/model/Color.java
size
called by 94
app/src/main/java/com/dozingcatsoftware/vectorpinball/fields/Stars.java
add
called by 86
app/src/main/java/com/dozingcatsoftware/vectorpinball/fields/Field7Delegate.java
asFloat
called by 66
app/src/main/java/com/dozingcatsoftware/vectorpinball/util/MathUtils.java
f2i
called by 65
app/src/main/java/com/dozingcatsoftware/bouncy/GL20Renderer.java
setRetracted
called by 64
app/src/main/java/com/dozingcatsoftware/vectorpinball/elements/WallElement.java

Shape

Method 871
Class 77
Enum 14
Interface 7

Languages

Java100%

Modules by API surface

app/src/main/java/com/dozingcatsoftware/vectorpinball/model/Field.java99 symbols
app/src/main/java/com/dozingcatsoftware/bouncy/BouncyActivity.java63 symbols
app/src/main/java/com/dozingcatsoftware/vectorpinball/fields/Field7Delegate.java45 symbols
app/src/main/java/com/dozingcatsoftware/vectorpinball/fields/Field9Delegate.java40 symbols
app/src/main/java/com/dozingcatsoftware/bouncy/GL20Renderer.java39 symbols
app/src/main/java/com/dozingcatsoftware/vectorpinball/fields/Field5Delegate.java28 symbols
app/src/main/java/com/dozingcatsoftware/vectorpinball/model/GameState.java26 symbols
app/src/main/java/com/dozingcatsoftware/vectorpinball/model/FieldLayout.java26 symbols
app/src/main/java/com/dozingcatsoftware/vectorpinball/elements/RolloverGroupElement.java26 symbols
app/src/main/java/com/dozingcatsoftware/vectorpinball/fields/Field3Delegate.java25 symbols
app/src/main/java/com/dozingcatsoftware/vectorpinball/elements/FieldElement.java24 symbols
app/src/main/java/com/dozingcatsoftware/vectorpinball/model/Ball.java23 symbols

For agents

$ claude mcp add Vector-Pinball \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact